PHP程序員必須掌握的知識(shí)
PHP5的優(yōu)點(diǎn)
PHP5的最大特點(diǎn)是引入了面向?qū)ο蟮娜繖C(jī)制,并且保留了向下的兼容性。程序員不必再編寫(xiě)缺乏功能性的類,并且能夠以多種方法實(shí)現(xiàn)類的保護(hù)。另外,在對(duì)象的集成等方面也不再存在問(wèn)題。使用PHP5引進(jìn)了類型提示和異常處理機(jī)制,能更有效的處理和避免錯(cuò)誤的發(fā)生。
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的區(qū)別
實(shí)例代碼
詳細(xì)解釋:
mysql_fetch_row,這個(gè)函數(shù)是從結(jié)果集中取一行作為枚舉數(shù)據(jù),從和指定的結(jié)果標(biāo)識(shí)關(guān)聯(lián)的結(jié)果集中取得一行數(shù)據(jù)并作為數(shù)組返回。每個(gè)結(jié)果的列儲(chǔ)存在一個(gè)數(shù)組的單元中,偏移量從0開(kāi)始。注意,這里是從0開(kāi)始偏移,也就是說(shuō)不能用字段名字來(lái)取值,只能用索引來(lái)取值,所以如下代碼是取不到值的:while($row=mysql_fetch_row($res)){
echo$row["cid"]."::".$row[1].”;
}//這里的$row["cid"]取不到值。
mysql_fetch_array,從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有,除了將數(shù)據(jù)以數(shù)字索引方式儲(chǔ)存在數(shù)組中之外,還可以將數(shù)據(jù)作為關(guān)聯(lián)索引儲(chǔ)存,用字段名作為鍵名。也就是說(shuō)他得到的結(jié)果像數(shù)組一樣,可以用key或者索引來(lái)取值,所以while($row=mysql_fetch_array($res)){echo$row["cid"]."::".$row[1].”;
}//這里$row["cid"],$row[1]都能得到相應(yīng)的值。
mysql_fetch_object,顧名思義,從結(jié)果集中取得一行作為對(duì)象,并將字段名字做為屬性。所以只有這樣才能取到值
while($row=mysql_fetch_object($res)){echo$row->cid."::".$row->title.”";
}mysql_fetch_assoc,從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,也就是說(shuō)這個(gè)函數(shù)不能像mysql_fetch_row那樣用索引來(lái)取值,只能用字段名字來(lái)取,所以while($row=mysql_fetch_assoc($res)){echo$row["cid"]."::".$row[1].”;}//$row[1]這樣是取不到值的補(bǔ)充一點(diǎn):
mysql_fetch_array函數(shù)是這樣定義的:arraymysql_fetch_array(resourceresult[,intresult_type]),返回根據(jù)從結(jié)果集取得的行生成的數(shù)組,如果沒(méi)有更多行則返回FALSE。mysql_fetch_array()中可選的第二個(gè)參數(shù)result_type是一個(gè)常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM和MYSQL_BOTH。其中:
1、mysql_fetch_assoc($result)==mysql_fetch_array($result,MYSQL_ASSOC);
2、mysql_fetch_row($result)==mysql_fetch_array($result,MYSQL_NUM);
所以mysql_fetch_array()函數(shù)在某種程度上可以算是mysql_fetch_row()與mysql_fetch_assoc()的集合。另外,mysql_fetch_array()另外還有MYSQL_BOTH參數(shù),將得到一個(gè)同時(shí)包含關(guān)聯(lián)和數(shù)字索引的數(shù)組。
在來(lái)說(shuō)句$row=$db->fetch_array($query);
$db是人數(shù)據(jù)庫(kù)操作類,$db->fetch_array($query),fetch_array($query)是那個(gè)db類里的方法,$row=$db->fetch_array($query)這句的意思是從記錄集$query中得到數(shù)據(jù)庫(kù)中的一行記錄。
實(shí)例代碼:
$conn=@mysql_connect($host,$user,$pass);@mysql_select_db($database,$conn);$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){$rows[]=$row;}
索引(詳解)
索引的優(yōu)點(diǎn):加快查詢速度。
(如果你總結(jié)下索引的用途,其實(shí)也就這一點(diǎn)了,若是你的面試官說(shuō)有其他的優(yōu)點(diǎn),那你完全可以告訴他,請(qǐng)你回去自己總結(jié)下索引這個(gè)到底是干什么的吧)
索引類型:
根據(jù)數(shù)據(jù)庫(kù)的功能,可以在數(shù)據(jù)庫(kù)設(shè)計(jì)器中創(chuàng)建四種索引:唯一索引、非唯一索引、主鍵索引和聚集索引。盡管唯一索引有助于定位信息,但為獲得最佳性能結(jié)果,建議改用主鍵或唯一約束。
唯一索引:
唯一索引是不允許其中任何兩行具有相同索引值的索引。當(dāng)現(xiàn)有數(shù)據(jù)中存在重復(fù)的鍵值時(shí),大多數(shù)數(shù)據(jù)庫(kù)不允許將新創(chuàng)建的唯一索引與表一起保存。數(shù)據(jù)庫(kù)還可能防止添加將在表中創(chuàng)建重復(fù)鍵值的新數(shù)據(jù)。例如,如果在employee表中職員的姓(lname)上創(chuàng)建了唯一索引,則任何兩個(gè)員工都不能同姓。非唯一索引:
非唯一索引是相對(duì)唯一索引,允許其中任何兩行具有相同索引值的索引。當(dāng)現(xiàn)有數(shù)據(jù)中存在重復(fù)的鍵值時(shí),數(shù)據(jù)庫(kù)是允許將新創(chuàng)建的索引與表一起保存。這時(shí)數(shù)據(jù)庫(kù)不能防止添加將在表中創(chuàng)建重復(fù)鍵值的新數(shù)據(jù)。主鍵索引:
數(shù)據(jù)庫(kù)表經(jīng)常有一列或列組合,其值唯一標(biāo)識(shí)表中的每一行。該列稱為表的主鍵。在數(shù)據(jù)庫(kù)關(guān)系圖中為表定義主鍵將自動(dòng)創(chuàng)建主鍵索引,主鍵索引是唯一索引的特定類型。該索引要求主鍵中的每個(gè)值都唯一。當(dāng)在查詢中使用主鍵索引時(shí),它還允許對(duì)數(shù)據(jù)的快速訪問(wèn)。聚集索引(也叫聚簇索引):
在聚集索引中,表中行的物理順序與鍵值的邏輯(索引)順序相同。一個(gè)表只能包含一個(gè)聚集索引。如果某索引不是聚集索引,則表中行的物理順序與鍵值的邏輯順序不匹配。與非聚集索引相比,聚集索引通常提供更快的數(shù)據(jù)訪問(wèn)速度。
擴(kuò)展閱讀:PHP程序員必須掌握的知識(shí)
PHP5的優(yōu)點(diǎn)
PHP5的最大特點(diǎn)是引入了面向?qū)ο蟮娜繖C(jī)制,并且保留了向下的兼容性。程序員不必再編寫(xiě)缺乏功能性的類,并且能夠以多種方法實(shí)現(xiàn)類的保護(hù)。另外,在對(duì)象的集成等方面也不再存在問(wèn)題。使用PHP5引進(jìn)了類型提示和異常處理機(jī)制,能更有效的處理和避免錯(cuò)誤的發(fā)生。
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的區(qū)別
實(shí)例代碼
詳細(xì)解釋:
mysql_fetch_row,這個(gè)函數(shù)是從結(jié)果集中取一行作為枚舉數(shù)據(jù),從和指定的結(jié)果標(biāo)識(shí)關(guān)聯(lián)的結(jié)果集中取得一行數(shù)據(jù)并作為數(shù)組返回。每個(gè)結(jié)果的列儲(chǔ)存在一個(gè)數(shù)組的單元中,偏移量從0開(kāi)始。注意,這里是從0開(kāi)始偏移,也就是說(shuō)不能用字段名字來(lái)取值,只能用索引來(lái)取值,所以如下代碼是取不到值的:while($row=mysql_fetch_row($res)){
echo$row["cid"]."::".$row[1].”;
}//這里的$row["cid"]取不到值。
mysql_fetch_array,從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有,除了將數(shù)據(jù)以數(shù)字索引方式儲(chǔ)存在數(shù)組中之外,還可以將數(shù)據(jù)作為關(guān)聯(lián)索引儲(chǔ)存,用字段名作為鍵名。也就是說(shuō)他得到的結(jié)果像數(shù)組一樣,可以用key或者索引來(lái)取值,所以while($row=mysql_fetch_array($res)){echo$row["cid"]."::".$row[1].”;
}//這里$row["cid"],$row[1]都能得到相應(yīng)的值。
mysql_fetch_object,顧名思義,從結(jié)果集中取得一行作為對(duì)象,并將字段名字做為屬性。所以只有這樣才能取到值
while($row=mysql_fetch_object($res)){echo$row->cid."::".$row->title.”";
}mysql_fetch_assoc,從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,也就是說(shuō)這個(gè)函數(shù)不能像mysql_fetch_row那樣用索引來(lái)取值,只能用字段名字來(lái)取,所以while($row=mysql_fetch_assoc($res)){echo$row["cid"]."::".$row[1].”;}//$row[1]這樣是取不到值的補(bǔ)充一點(diǎn):
mysql_fetch_array函數(shù)是這樣定義的:arraymysql_fetch_array(resourceresult[,intresult_type]),返回根據(jù)從結(jié)果集取得的行生成的數(shù)組,如果沒(méi)有更多行則返回FALSE。mysql_fetch_array()中可選的第二個(gè)參數(shù)result_type是一個(gè)常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM和MYSQL_BOTH。其中:
1、mysql_fetch_assoc($result)==mysql_fetch_array($result,MYSQL_ASSOC);
2、mysql_fetch_row($result)==mysql_fetch_array($result,MYSQL_NUM);
所以mysql_fetch_array()函數(shù)在某種程度上可以算是mysql_fetch_row()與mysql_fetch_assoc()的集合。另外,mysql_fetch_array()另外還有MYSQL_BOTH參數(shù),將得到一個(gè)同時(shí)包含關(guān)聯(lián)和數(shù)字索引的數(shù)組。
在來(lái)說(shuō)句$row=$db->fetch_array($query);
$db是人數(shù)據(jù)庫(kù)操作類,$db->fetch_array($query),fetch_array($query)是那個(gè)db類里的方法,$row=$db->fetch_array($query)這句的意思是從記錄集$query中得到數(shù)據(jù)庫(kù)中的一行記錄。
實(shí)例代碼:
$conn=@mysql_connect($host,$user,$pass);@mysql_select_db($database,$conn);$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){$rows[]=$row;}
索引(詳解)
索引的優(yōu)點(diǎn):加快查詢速度。
(如果你總結(jié)下索引的用途,其實(shí)也就這一點(diǎn)了,若是你的面試官說(shuō)有其他的優(yōu)點(diǎn),那你完全可以告訴他,請(qǐng)你回去自己總結(jié)下索引這個(gè)到底是干什么的吧)
索引類型:
根據(jù)數(shù)據(jù)庫(kù)的功能,可以在數(shù)據(jù)庫(kù)設(shè)計(jì)器中創(chuàng)建四種索引:唯一索引、非唯一索引、主鍵索引和聚集索引。盡管唯一索引有助于定位信息,但為獲得最佳性能結(jié)果,建議改用主鍵或唯一約束。
唯一索引:
唯一索引是不允許其中任何兩行具有相同索引值的索引。當(dāng)現(xiàn)有數(shù)據(jù)中存在重復(fù)的鍵值時(shí),大多數(shù)數(shù)據(jù)庫(kù)不允許將新創(chuàng)建的唯一索引與表一起保存。數(shù)據(jù)庫(kù)還可能防止添加將在表中創(chuàng)建重復(fù)鍵值的新數(shù)據(jù)。例如,如果在employee表中職員的姓(lname)上創(chuàng)建了唯一索引,則任何兩個(gè)員工都不能同姓。非唯一索引:
非唯一索引是相對(duì)唯一索引,允許其中任何兩行具有相同索引值的索引。當(dāng)現(xiàn)有數(shù)據(jù)中存在重復(fù)的鍵值時(shí),數(shù)據(jù)庫(kù)是允許將新創(chuàng)建的索引與表一起保存。這時(shí)數(shù)據(jù)庫(kù)不能防止添加將在表中創(chuàng)建重復(fù)鍵值的新數(shù)據(jù)。主鍵索引:
數(shù)據(jù)庫(kù)表經(jīng)常有一列或列組合,其值唯一標(biāo)識(shí)表中的每一行。該列稱為表的主鍵。在數(shù)據(jù)庫(kù)關(guān)系圖中為表定義主鍵將自動(dòng)創(chuàng)建主鍵索引,主鍵索引是唯一索引的特定類型。該索引要求主鍵中的每個(gè)值都唯一。當(dāng)在查詢中使用主鍵索引時(shí),它還允許對(duì)數(shù)據(jù)的快速訪問(wèn)。聚集索引(也叫聚簇索引):
在聚集索引中,表中行的物理順序與鍵值的邏輯(索引)順序相同。一個(gè)表只能包含一個(gè)聚集索引。如果某索引不是聚集索引,則表中行的物理順序與鍵值的邏輯順序不匹配。與非聚集索引相比,聚集索引通常提供更快的數(shù)據(jù)訪問(wèn)速度。
友情提示:本文中關(guān)于《PHP程序員必須掌握的知識(shí)》給出的范例僅供您參考拓展思維使用,PHP程序員必須掌握的知識(shí):該篇文章建議您自主創(chuàng)作。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。