php中mysql和mysqli的總結
首先php—mysql 是 php 操做 mysql 資料庫最原始的的拓展php
而php—mysqli,字母i表明的 Improvement ,提更了相對進階的功能。html
推薦學習和使用mysqlimysql
mysql是非持繼鏈接函數而mysqli是永遠鏈接函數sql
也就是說mysql每次連接都會打開一個鏈接的進程數據庫
而mysqli屢次運行mysqli將使用同一鏈接進程,從而減小了服務器的開銷 apache
默認狀況下,從php5開始,php不在自動開啓對mysql的支持,而是放到擴展函數庫中。因此用戶須要在拓展函數庫中開啓mysql函數庫服務器
首先打開php.ini 找到「;entensions=php_mysql.dll」,去掉前面的分號註釋函數
保存重啓apache或者iispost
而後能夠經過phpinfo()函數檢查是否配對成功,若是顯示出的php的環境配置信息中有mysql項目,表示已經成功開啓對mysql的支持。學習
mysqli.dll是一個容許以對象的方式或者過程操做數據庫的,它的使用方式也很容易。這裏就幾個常見的操做和 mysql.dll作一個對比。
1:mysql.dll(能夠理解爲函數式的方式):
$conn = mysql_connect('localhost', 'user', 'password'); //鏈接mysql數據庫 mysql_select_db('data_base'); //選擇數據庫 $result = mysql_query('select * from data_base');//這裏有第二個可選參數,指定打開的鏈接 $row = mysql_fetch_row( $result ) ) //爲了簡單,這裏只取一行數據 echo $row[0]; //輸出第一個字段的值
mysqli也有過程式的方式,只不過開始貫以mysqli的前綴,其餘都差很少。
若是mysqli以過程式的方式操做的話, 有些函數必須指定資源
好比說 mysqli_query(資源標識,SQL語句),而且資源標識的參數是放在前面的
而 mysql_query(SQL語句,'可選')的資源標識是放在後面的,而且能夠不指定,它默認是上一個打開的鏈接或資源。
並且mysql_select_db和mysqli_select_db的參數恰好相反。
這裏須要重點強調的是 php5.5沒法使用mysql_query,須要用mysqli
因此我才接觸到了mysqli 手動滑稽
2mysqli.dll(對象方式):
$conn = new mysqli('localhost', 'user', 'password','data_base'); //這裏的鏈接是new出來的,最後一個參數是直接指定數據庫,不用mysql_select_db()了 //也能夠構造時候不指定,而後 $conn -> select_db('data_base') $result = $conn -> query( 'select * from data_base' ); $row = $result -> fetch_row(); //取一行數據 echo row[0]; //輸出第一個字段的值