源碼庫淺析PHP 5的mysqli擴展建站知識
導讀:1建站知識在通常情況下,使用PHP構建的應用系統都是搭配著MySQL數據庫,很長時間以來,mysql擴展一直伴隨著PHP與MySQL,并為二者之間的交互提供了通道。mys網seo優化趨勢網站推廣優化seo。
在通常情況下,使用PHP構建的應用系統都是搭配著MySQL數據庫,很長時間以來,mysql擴展一直伴隨著PHP與MySQL,并為二者之間的交互提供了通道。mysql擴展庫提供的相關函數使PHP程序存取MySQL數據庫變得很容易,但是,隨著MySQL的發展,mysql擴展開始出現一些新問題,因為mysql擴展無法支持MySQL 4.1及其更高版本的新特性。
面對mysql擴展功能上的的不足,PHP的開發人員決定建立一種全新支持PHP 5的MySQL擴展程序,這就是mysqli擴展。
1 mysqli簡介
mysqli擴展使得用戶可以利用MySQL 4.1及其更高版本的新功能,與mysql擴展相比,mysqli擴展在以下方面有了明顯的提高。
l 兼容性與維護性:mysqli擴展可以很容易地使用MySQL的新功能,所以mysqli擁有與MySQL更高的兼容性。即使MySQL的新版本又出現了更多功能,mysqli擴展也可以很容易的支持。
l 面向對象:mysqli擴展已封裝到一個類中,從而可使用面向對象的方式編程。即使對面向對象不了解,mysqli擴展也提供了面向過程的編程方式來供用戶選擇。
l 速度和安全性:mysqli擴展執行的速度要比之前版本的mysql擴展快了很多。mysqli擴展支持MySQL新版本的密碼雜湊(Password Hashes)和驗證程序,更加提高了應用程序的安全性。
l 預準備語句:預準備語句可提高重復使用的語句的性能,mysqli擴展提供了對預準備語句的支持。
l 調試功能:mysqli擴展進一步改進了調試功能,提高了開發效率。
要在PHP中使用mysqli擴展,需要在配置文件php.ini中添加如下的設置:
extension=php_mysqli.dll
如果配置文件中已有上述設置,確保extension前面沒有“;”,否則將其去掉。下面開始介紹如何使用mysqli擴展來存取數據庫。
2 連接與斷開服務器
mysqli提供了面向對象和面向過程兩種方式來與數據庫交互,分別看一下這兩種方式。
1.面向對象
在面向對象的方式中,mysqli被封裝成一個類,它的構造方法如下:
__construct ([ string $host [, string $username [, string $passwd [, string $dbname
[, int $port [, string $socket ]]]]]] )
在上述語法中涉及到的參數說明如下。
l host:連接的服務器地址。
l username:連接數據庫的用戶名,默認值是服務器進程所有者的用戶名。
l passwd:連接數據庫的密碼,默認值為空。
l dbname:連接的數據庫名稱。
l port:TCP端口號。
l soc網站優化seo培訓ket:UNIX域socket。
要建立與MySQL的連接可以通過其構造方法實例化mysqli類,例如下面的代碼:
<?php
$db_host="localhost"; //連接的服務器地址
$db_user="root"; //連接數據庫的用戶名
$db_psw="root"; //連接數據庫的密碼
$db_name="sunyang"; //連接的數據庫名稱
$mysqli=new mysqli($db_host,$db_user,$db_psw,$db_name);
?>
mysqli還提供了一個連接MySQL的成員方法connect()。當實例化構造方法為空的mysqli類時,用mysqli對象調用connect()方法同樣可連接MySQL,例如,下面的代碼:
代碼23-26 光盤\codes\第23章\23.5\connect.php
<?php
$db_host="localhost"; //連接的服務器地址
$db_user="root"; &n網站建設bsp; //連接數據庫的用戶名
$db_psw="root"; //連接數據庫的密碼
$db_name="sunyang"; //連接的數據庫名稱
$mysqli=new mysqli();
$mysqli->connect($db_host,$db_user,$db_psw,$db_name);
?>
關閉與MySQL服務器的連接通過mysqli對象調用close()方法即可,例如:
$mysqli->close();
2.面向過程
在面向過程的方式中,mysqli擴展提供了函數mysqli_connect()與MySQL建立連接,該函數的語法格式如下:
mysqli mysqli_connect ([ string $host [, string $username [, string $passwd
[, string $dbname [, int $port [, string $socket ]]]]]] )
mysqli_connect()函數的用法與mysql擴展中的mysql_connect()函數用法十分相似,下面是mysqli_connect()函數的用法示例:
代碼23-27 光盤\codes\第23章\23.5\mysqli_connect.php
<?php
$connection = mysqli_connect("localhost","root","root","sunyang");
if ( $connection ) {
echo "數據庫連接成功";
}else {
echo "數據庫連接失敗";
}
?>
關閉與MySQL服務器的連接使用mysqli_close()函數,例如:
mysqli_close();
3 使用mysqli存取數據
使用mysqli存取數據也包括面向對象和面向過程兩種方式,在本節我們只討論如何使用面向對象的方式來與MySQL交互,關于mysqli擴展中使用面向過程方式這里就不再詳細介紹了,有興趣的讀者可參考官方文檔來獲取相關的資料。
在mysqli中,執行查詢使用query()方法,該方法的語法格式如下:
mixed query ( string $query [, int $resultmode ] )
在上述語法中涉及到的參數說明如下。
l query:向服務器發送的SQL語句。
l resultmode:該參數接受兩個值,一個是MYSQLI_STORE_RESULT,表示結果作為緩沖集合返回;另一個是MYSQLI_USE_RESULT,表示結果作為非緩沖集合返回。
下面是使用query()方法執行查詢的例子:
代碼23-28 光盤\codes\第23章\23.5\query.php
<?php
$mysqli=new mysqli("localhost","root","root","sunyang"); //實例化mysqli
$query="select * from employee";
$result=$mysqli->query($query);
if ($result) {
if($result->num_rows>0){ //判斷結果集中行的數目是否大于0
while($row =$result->fetch_array() ){ //循環輸出結果集中的記錄
echo ($row[0])."<br>";
ech網站seo優化課程o ($row[1])."<br>";
echo ($row[2])."<br>";
echo ($row[3])."<br>";
echo "<hr>";
}
}
}else {
echo "查詢失敗";
}
$result->free();
$mysqli->close();
?>
在上面代碼中,num_rows為結果集的一個屬性,返回結果集中行的數目。方法fetch_array()將結果集中的記錄放入一個數組中并將其返回。最后使用free()方法將結果集中的內存釋放,使用close()方法將數據庫連接關閉。上面代碼的輸出結果如圖23-24所示。
源碼庫淺析PHP 5的mysqli擴展
圖23-24 使用query()方法的查詢結果相關網seo優化趨勢網站推廣優化seo。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-24 ,文章源碼庫淺析PHP 5的mysqli擴展建站知識主要講述標簽,標題,源碼庫淺析PHP 5的mysqli擴展建站知識網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_6746.html