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