国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php簡答題

2024-05-04 23:06:34
字體:
來源:轉載
供稿:網友

1、echo(),print(),print_r()的區別(3分)

答:echo是PHP語句, print和print_r是函數,語句沒有返回值,函數可以有返回值(即便沒有用)

print() 只能打印出簡單類型變量的值(如int,string)

print_r() 可以打印出復雜類型變量的值(如數組,對象)

echo 輸出一個或者多個字符串

2、用PHP打印出前一天的時間格式是2006-5-10 22:21:21(2分)

答:echo date('Y-m-d H:i:s', strtotime('-1 days'));

3、能夠使HTML和PHP分離開使用的模板(1分)

答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate

4、如何實現字符串翻轉?(3分)

答:echo strrev($a);

5、使用哪些工具進行版本控制?(1分)

答:cvs,svn,vss;

7、優化MYSQL數據庫的方法。(4分,多寫多得)

答:

1、選取最適用的字段屬性,盡可能減少定義字段長度,盡量把字段設置NOT NULL,例如'省份,性別',最好設置為ENUM

2、使用連接(JOIN)來代替子查詢:

a.刪除沒有任何訂單客戶:DELETE FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)

b.提取所有沒有訂單客戶:SELECT FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)

c.提高b的速度優化:SELECT FROM customerinfo LEFT JOIN orderid customerinfo.customerid=orderinfo.customerid

WHERE orderinfo.customerid IS NULL

3、使用聯合(UNION)來代替手動創建的臨時表

a.創建臨時表:SELECT name FROM `nametest` UNION SELECT username FROM `nametest2`

4、事務處理:

a.保證數據完整性,例如添加和修改同時,兩者成立則都執行,一者失敗都失敗

  1. mysql_query("BEGIN"); 
  2. mysql_query("INSERT INTO customerinfo (name) VALUES ('$name1')"
  3. mysql_query("SELECT * FROM `orderinfo` where customerid=".$id"); 
  4. mysql_query("COMMIT");//開源軟件:Vevb.com 

5、鎖定表,優化事務處理:

a.我們用一個 SELECT 語句取出初始數據,通過一些計算,用 UPDATE 語句將新值更新到表中。

包含有 WRITE 關鍵字的 LOCK TABLE 語句可以保證在 UNLOCK TABLES 命令被執行之前,不會有其它的訪問來對 inventory 進行插入、更新或者刪除的操作

  1. mysql_query("LOCK TABLE customerinfo READ, orderinfo WRITE"); 
  2. mysql_query("SELECT customerid FROM `customerinfo` where id=".$id); 
  3. mysql_query("UPDATE `orderinfo` SET ordertitle='$title' where customerid=".$id); 
  4. mysql_query("UNLOCK TABLES"); 

6、使用外鍵,優化鎖定表

a.把customerinfo里的customerid映射到orderinfo里的customerid,任何一條沒有合法的customerid的記錄不會寫到orderinfo里.

  1. CREATE TABLE customerinfo 
  2. customerid INT NOT NULL
  3. PRIMARY KEY(customerid) 
  4. )TYPE = INNODB; 
  5. CREATE TABLE orderinfo 
  6. orderid INT NOT NULL
  7. customerid INT NOT NULL
  8. PRIMARY KEY(customerid,orderid), 
  9. FOREIGN KEY (customerid) REFERENCES customerinfo 
  10. (customerid) ON DELETE CASCADE 
  11. )TYPE = INNODB; 

注意:'ON DELETE CASCADE',該參數保證當customerinfo表中的一條記錄刪除的話同時也會刪除order,表中的該用戶的所有記錄,注意使用外鍵要定義事務安全類型為INNODB;

7、建立索引:

a.格式:

(普通索引)->

創建:CREATE INDEX <索引名> ON tablename (索引字段)

修改:ALTER TABLE tablename ADD INDEX [索引名] (索引字段)

創表指定索引:CREATE TABLE tablename([...],INDEX[索引名](索引字段))

(唯一索引)->

創建:CREATE UNIQUE <索引名> ON tablename (索引字段)

修改:ALTER TABLE tablename ADD UNIQUE [索引名] (索引字段)

創表指定索引:CREATE TABLE tablename([...],UNIQUE[索引名](索引字段))

(主鍵)->

它是唯一索引,一般在創建表是建立,格式為:

CREATA TABLE tablename ([...],PRIMARY KEY[索引字段])

8、優化查詢語句

a.最好在相同字段進行比較操作,在建立好的索引字段上盡量減少函數操作

例子1:

SELECT * FROM order WHERE YEAR(orderDate)<2008;(慢)

SELECT * FROM order WHERE orderDate<"2008-01-01";(快)

例子2:

SELECT * FROM order WHERE addtime/7<24;(慢)

SELECT * FROM order WHERE addtime<24*7;(快)

例子3:

SELECT * FROM order WHERE title like "%good%";

SELECT * FROM order WHERE title>="good" and name<"good";

9、PHP的意思(送1分)

答:PHP是一個基于服務端來創建動態網站的腳本語言,您可以用PHP和HTML生成網站主頁.

10、MYSQL取得當前時間的函數是?,格式化日期的函數是(2分)

答:now(),date()

11、實現中文字串截取無亂碼的方法。(3分)

答:

  1. function GBsubstr($string$start$length) { 
  2.  
  3. if(strlen($string)>$length){ 
  4. $str=null; 
  5. $len=$start+$length
  6. for($i=$start;$i<$len;$i++){ 
  7. if(ord(substr($string,$i,1))>0xa0){ 
  8. $str.=substr($string,$i,2); 
  9. $i++; 
  10. }else
  11. $str.=substr($string,$i,1); 
  12. return $str.'...'
  13. }else
  14. return $string

12、您是否用過版本控制軟件? 如果有您用的版本控制軟件的名字是?(1分)

13、您是否用過模板引擎? 如果有您用的模板引擎的名字是?(1分)

答:用過,smarty

14、請簡單闡述您最得意的開發之作(4分)

答:信息分類

15、如何修改SESSION的生存時間(1分).

答:方法1:將php.ini中的session.gc_maxlifetime設置為9999重啟apache

方法2:$savePath = "./session_save_dir/";

  1. $lifeTime = 小時 * 秒; 
  2. session_save_path($savePath); 
  3. session_set_cookie_params($lifeTime); 
  4. session_start(); 

方法3:setcookie() and session_set_cookie_params($lifeTime);

16、對于大流量的網站,您采用什么樣的方法來解決訪問量問題?(4分)

答:確認服務器硬件是否足夠支持當前的流量,數據庫讀寫分離,優化數據表,

程序功能規則,禁止外部的盜鏈,控制大文件的下載,使用不同主機分流主要流量

17、用PHP寫出顯示客戶端IP與服務器IP的代碼1分)

答:打印客戶端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');

打印服務器IP:echo gethostbyname("www.survivalescaperooms.com")

18、語句include和require的區別是什么?為避免多次包含同一文件,可用(?)語句代替它們? (2分)

答:require->require是無條件包含也就是如果一個流程里加入require,無論條件成立與否都會先執行require

include->include有返回值,而require沒有(可能因為如此require的速度比include快)

注意:包含文件不存在或者語法錯誤的時候require是致命的,include不是

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊宁县| 新昌县| 英德市| 锦州市| 紫云| 沙田区| 富民县| 揭东县| 池州市| 蓝山县| 曲沃县| 阜新| 廊坊市| 花莲县| 陇南市| 泸西县| 义乌市| 华阴市| 明溪县| 丹凤县| 涟水县| 临湘市| 江都市| 襄垣县| 霍州市| 庆元县| 合肥市| 长岭县| 肇源县| 青田县| 阳原县| 崇阳县| 山东省| 内丘县| 云霄县| 望谟县| 宾川县| 阿克陶县| 苏州市| 龙游县| 宝清县|