国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

源碼庫淺析PHP 5的mysqli擴展

2024-07-24 12:40:32
字體:
來源:轉載
供稿:網友
在通常情況下,使用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         socket: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";                                                  //連接數據庫的用戶名   $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>";                              echo ($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()方法的查詢結果
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 秦安县| 华亭县| 宜章县| 卓资县| 九龙县| 庆城县| 高淳县| 合山市| 平江县| 临漳县| 穆棱市| 中方县| 桑日县| 武功县| 墨脱县| 中超| 贵溪市| 仁布县| 常宁市| 武强县| 迭部县| 凤凰县| 抚顺县| 砚山县| 喀喇沁旗| 新晃| 晋州市| 无极县| 嘉峪关市| 峨边| 星座| 日土县| 宁陕县| 许昌市| 黔江区| 荣昌县| 毕节市| 永和县| 雅安市| 富蕴县| 乌拉特后旗|