- 相關(guān)推薦
PHP面試題大全
基礎(chǔ)題:
1.表單中 get與post提交方法的區(qū)別?
答:get是發(fā)送請(qǐng)求HTTP協(xié)議通過(guò)url參數(shù)傳遞進(jìn)行接收,而post是實(shí)體數(shù)據(jù),可以通過(guò)表單提交大量信息.
2.session與cookie的區(qū)別?
答:session:儲(chǔ)存用戶訪問(wèn)的全局唯一變量,存儲(chǔ)在服務(wù)器上的php指定的目錄中的(session_dir)的位置進(jìn)行的存放
cookie:用來(lái)存儲(chǔ)連續(xù)訪問(wèn)一個(gè)頁(yè)面時(shí)所使用,是存儲(chǔ)在客戶端,對(duì)于Cookie來(lái)說(shuō)是存儲(chǔ)在用戶WIN的Temp目錄中的,
PHP面試題大全
。兩者都可通過(guò)時(shí)間來(lái)設(shè)置時(shí)間長(zhǎng)短
3.數(shù)據(jù)庫(kù)中的事務(wù)是什么?
答:事務(wù)(transaction)是作為一個(gè)單元的一組有序的數(shù)據(jù)庫(kù)操作。如果組中的所有操作都成功,則認(rèn)為事務(wù)成功,即使只有一個(gè)操作失敗,事務(wù)也不成功。如果所有操作 完成,事務(wù)則提交,其修改將作用于所有其他數(shù)據(jù)庫(kù)進(jìn)程。如果一個(gè)操作失敗,則事務(wù)將回滾,該事務(wù)所有操作的影響都將取消。
簡(jiǎn)述題:
1、用PHP打印出前一天的時(shí)間格式是2006-5-10 22:21:21(2分)
答:echo date(‘Y-m-d H:i:s’, strtotime(‘-1 days’));
2、echo(),print(),print_r()的區(qū)別(3分)
答:echo是PHP語(yǔ)句, print和print_r是函數(shù),語(yǔ)句沒(méi)有返回值,函數(shù)可以有返回值(即便沒(méi)有用)
print() 只能打印出簡(jiǎn)單類型變量的值(如int,string)
print_r() 可以打印出復(fù)雜類型變量的值(如數(shù)組,對(duì)象)
echo 輸出一個(gè)或者多個(gè)字符串
3、能夠使HTML和PHP分離開(kāi)使用的模板(1分)
答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate
5、使用哪些工具進(jìn)行版本控制?(1分)
答:cvs,svn,vss;
6、如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?(3分)
答:echo strrev($a);
7、優(yōu)化MYSQL數(shù)據(jù)庫(kù)的方法。(4分,多寫(xiě)多得)
答:
1、選取最適用的字段屬性,盡可能減少定義字段長(zhǎng)度,盡量把字段設(shè)置NOT NULL,例如’省份,性別’,最好設(shè)置為ENUM
2、使用連接(JOIN)來(lái)代替子查詢:
a.刪除沒(méi)有任何訂單客戶:DELETE FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)
b.提取所有沒(méi)有訂單客戶:SELECT FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)
c.提高b的速度優(yōu)化:SELECT FROM customerinfo LEFT JOIN orderid customerinfo.customerid=orderinfo.customerid
WHERE orderinfo.customerid IS NULL
3、使用聯(lián)合(UNION)來(lái)代替手動(dòng)創(chuàng)建的臨時(shí)表
a.創(chuàng)建臨時(shí)表:SELECT name FROM `nametest` UNION SELECT username FROM `nametest2`
4、事務(wù)處理:
a.保證數(shù)據(jù)完整性,例如添加和修改同時(shí),兩者成立則都執(zhí)行,一者失敗都失敗
mysql_query(“BEGIN”);
mysql_query(“INSERT INTO customerinfo (name) 8i VALUES (‘$name1′)”;
mysql_query(“SELECT * FROM `orderinfo` where customerid=”.$id”);
mysql_query(“COMMIT”);
5、鎖定表,優(yōu)化事務(wù)處理:
a.我們用一個(gè) SELECT 語(yǔ)句取出初始數(shù)據(jù),通過(guò)一些計(jì)算,用 UPDATE 語(yǔ)句將新值更新到表中,
資料共享平臺(tái)
《PHP面試題大全》(http://www.oriental01.com)。包含有 WRITE(write) 關(guān)鍵字的 LOCK TABLE 語(yǔ)句可以保證在 UNLOCK TABLES 命令被執(zhí)行之前,
不會(huì)有其它的訪問(wèn)來(lái)對(duì) inventory 進(jìn)行插入、更新或者刪除的操作
mysql_query(“LOCK TABLE customerinfo READ, orderinfo WRITE”);
mysql_query(“SELECT customerid FROM `customerinfo` where id=”.$id);
mysql_query(“UPDATE `orderinfo` SET ordertitle=’$title’ where customerid=”.$id);
mysql_query(“UNLOCK TABLES”);
6、使用外鍵,優(yōu)化鎖定表
a.把customerinfo里的customerid映射到orderinfo里的customerid,
任何一條沒(méi)有合法的customerid的記錄不會(huì)寫(xiě)到orderinfo里
CREATE TABLE customerinfo
(
customerid INT NOT NULL,
PRIMARY KEY(customerid)
)TYPE = INNODB;
CREATE TABLE orderinfo
(
orderid INT NOT NULL,
customerid INT NOT NULL,
PRIMARY KEY(customerid,orderid),
FOREIGN KEY (customerid) REFERENCES customerinfo
(customerid) ON DELETE CASCADE
)TYPE = INNODB;
注意:’ON DELETE CASCADE’,該參數(shù)保證當(dāng)customerinfo表中的一條記錄刪除的話同時(shí)也會(huì)刪除order
表中的該用戶的所有記錄,注意使用外鍵要定義事務(wù)安全類型為INNODB;
7、建立索引:
a.格式:
(普通索引)->
創(chuàng)建:CREATE INDEX <索引名> ON tablename (索引字段)
修改:ALTER TABLE tablename ADD INDEX [索引名] (索引字段)
創(chuàng)表指定索引:CREATE TABLE tablename([...],INDEX[索引名](索引字段))
(唯一索引)->
創(chuàng)建:CREATE UNIQUE <索引名> ON tablename (索引字段)
修改:ALTER TABLE tablename ADD UNIQUE [索引名] (索引字段)
創(chuàng)表指定索引:CREATE TABLE tablename([...],UNIQUE[索引名](索引字段))
(主鍵)->
它是唯一索引,一般在創(chuàng)建表是建立,格式為:
CREATA TABLE tablename ([...],PRIMARY KEY[索引字段])
8、優(yōu)化查詢語(yǔ)句
【PHP面試題】相關(guān)文章:
經(jīng)典PHP筆試題09-16
最新php筆試試題10-27
最新PHP筆試題目及答案05-25
求職動(dòng)機(jī)面試題07-30
有趣而刁鉆的面試題10-22
20個(gè)經(jīng)典面試題04-12
寶潔英語(yǔ)面試題03-18
銷售行業(yè)面試題07-26
面試題:講解實(shí)習(xí)經(jīng)歷09-19
面試題:談?wù)勀愕娜秉c(diǎn)10-07