MySQLi使用實(shí)例深度講解:MySQLi基于面向過(guò)程的編程
以下編程基于PHP環(huán)境:mysqli在windows上,對(duì)于PHP 5.3或更新版本,mysqli擴(kuò)展默認(rèn)開(kāi)啟,對(duì)于PHP 5.0 5.1 5.2,mysqli擴(kuò)展默認(rèn)并不會(huì)開(kāi)啟,因此php.ini中php_mysqli.dll這個(gè)DLL 必須開(kāi)啟。MySQLi基于面向過(guò)程的編程和面向?qū)ο蟮木幊淌窍鄬?duì)的,其中使用到的方法都是可以類(lèi)比的。連接數(shù)據(jù)庫(kù)。
1、設(shè)置文件字符編碼及連接數(shù)據(jù)庫(kù)
//設(shè)置文件字符編碼 header("Content-type:text/html;charset=utf-8"); //連接數(shù)據(jù)庫(kù) $link=mysqli_connect('localhost', 'root', '', 'test','port') or die ('Connect Error:'.mysqli_connect_error());
2、設(shè)置數(shù)據(jù)庫(kù)字符編碼
mysqli_set_charset($link,'UTF8');
3、插入記錄
$query = "INSERT INTO staff(id,name,job) VALUES('','naruto','保安隊(duì)長(zhǎng)')"; $res = mysqli_query($link,$query);//插入成功返回真,插入失敗返回假 if($res){ //插入成功則輸出自增主鍵的id echo "AUTO_INCREMENT:".mysqli_insert_id($link); echo "<hr/>"; echo "AFFECTED ROWS:".mysqli_affected_rows($link); }else{ //插入失敗則輸出錯(cuò)誤編號(hào)和錯(cuò)誤信息 echo "Error:"; echo mysqli_errno($link).":".mysqli_error($link); }
4、查詢(xún)一條記錄
//函數(shù)名及說(shuō)明 //mysqli_fetch_assoc($result) 查詢(xún)到的一條數(shù)據(jù)以關(guān)聯(lián)數(shù)組形式返回 //mysqli_fetch_row($result) 查詢(xún)到的一條數(shù)據(jù)以索引數(shù)組形式返回 //mysqli_fetch_array($result) 查詢(xún)到的一條數(shù)據(jù)以索引數(shù)組和關(guān)聯(lián)數(shù)組的混合形式返回 //mysqli_fetch_object($result) 查詢(xún)到的一條數(shù)據(jù)以對(duì)象屬性的形式返回 //mysqli_fetch_array($result) 查詢(xún)到的一條數(shù)據(jù)以索引數(shù)組和關(guān)聯(lián)數(shù)組的混合形式返回 //mysqli_fetch_array($result,MYSQLI_BOTH) 查詢(xún)到的一條數(shù)據(jù)以索引數(shù)組和關(guān)聯(lián)數(shù)組的混合形式返回 //mysqli_fetch_array($result,MYSQLI_ASSOC) 查詢(xún)到的一條數(shù)據(jù)以關(guān)聯(lián)數(shù)組的混合形式返回 //mysqli_fetch_array($result,MYSQLI_ROW) 查詢(xún)到的一條數(shù)據(jù)以索引數(shù)組的混合形式返回 $query = "SELECT * FROM staff WHERE id = 2"; $result = mysqli_query($link, $query); $row = mysqli_fetch_assoc($result); var_dump($row); //輸出查詢(xún)結(jié)果
5、查詢(xún)多條記錄(一次取出多條記錄)
//函數(shù)名及說(shuō)明 //mysqli_fetch_all($result) 查詢(xún)到的所有數(shù)據(jù)以索引數(shù)組和關(guān)聯(lián)數(shù)組的混合形式返回 //mysqli_fetch_all($result,MYSQLI_BOTH) 查詢(xún)到的所有數(shù)據(jù)以索引數(shù)組和關(guān)聯(lián)數(shù)組的混合形式返回 //mysqli_fetch_all($result,MYSQLI_ASSOC) 查詢(xún)到的所有數(shù)據(jù)以關(guān)聯(lián)數(shù)組的混合形式返回 //mysqli_fetch_all($result,MYSQLI_ROW) 查詢(xún)到的所有數(shù)據(jù)以索引數(shù)組的混合形式返回 $query = "SELECT * FROM staff"; $result = mysqli_query($link, $query); $rows = mysqli_fetch_all($result,MYSQLI_ASSOC); echo "共".count($rows)."條記錄:"; var_dump($rows);
6、每次取出一條記錄
$query = "SELECT * FROM staff"; $result = mysqli_query($link, $query); while($row = mysqli_fetch_assoc($result)){ $rows[] = $row; }; echo "共".count($rows)."條記錄:"; var_dump($rows);
7、更新記錄
更新操作和插入操作類(lèi)似,區(qū)別是執(zhí)行的sql語(yǔ)句不同。
$query = "UPDATE staff SET name = 'kakax' WHERE id = 3"; $res = mysqli_query($link,$query);//插入成功返回真,插入失敗返回假 if($res){ //插入成功則輸出自增主鍵的id echo "AUTO_INCREMENT:".mysqli_insert_id($link); echo "<hr/>"; echo "AFFECTED ROWS:".mysqli_affected_rows($link); }else{ //插入失敗則輸出錯(cuò)誤編號(hào)和錯(cuò)誤信息 echo "Error:"; echo mysqli_errno($link).":".mysqli_error($link); }
8、刪除記錄
刪除操作和插入操作以及更新操作類(lèi)似,區(qū)別是執(zhí)行的sql語(yǔ)句不通。
$query = "DELETE FROM staff WHERE id = 13"; $res = mysqli_query($link,$query);//插入成功返回真,插入失敗返回假 if($res){ //插入成功則輸出自增主鍵的id echo "AUTO_INCREMENT:".mysqli_insert_id($link); echo "<hr/>"; echo "AFFECTED ROWS:".mysqli_affected_rows($link); }else{ //插入失敗則輸出錯(cuò)誤編號(hào)和錯(cuò)誤信息 echo "Error:"; echo mysqli_errno($link).":".mysqli_error($link); }
9、關(guān)閉數(shù)據(jù)庫(kù)連接
mysqli_close($link);
如果不適用mysqli_close()語(yǔ)句關(guān)閉數(shù)據(jù)庫(kù)的連接,則非持久連接會(huì)在腳本執(zhí)行完畢后自動(dòng)關(guān)閉。mysqli_close() 不會(huì)關(guān)閉由 mysqli_pconnect() 建立的持久連接。
本文為「本站原創(chuàng)」,未經(jīng)我們?cè)S可,嚴(yán)謹(jǐn)任何人或單位以任何形式轉(zhuǎn)載或刊載本文章,我們保留依法追究侵權(quán)的權(quán)力!
微信聯(lián)系我們
使用微信掃一掃
昵稱(chēng):億百天技術(shù)
公司:湖北億百天信息技術(shù)有限公司
電話(huà):027-88773336
手機(jī):15342213852
郵箱:serviceebaitian.cn
我來(lái)說(shuō)兩句