首先php—mysql 是 php 操作 mysql 資料庫最原始的的拓展
而php—mysqli,字母i代表的 Improvement ,提更了相對進階的功能。
推薦學習和使用mysqli
mysql是非持繼連接函數而mysqli是永遠連接函數
也就是說mysql每次鏈接都會打開一個連接的進程
而mysqli多次運行mysqli將使用同一連接進程,從而減少了服務器的開銷
默認情況下,從php5開始,php不在自動開啟對mysql的支持,而是放到擴展函數庫中。所以用戶需要在拓展函數庫中開啟mysql函數庫
首先打開php.ini 找到“;entensions=php_mysql.dll”,去掉前面的分號注釋
保存重啟apache或者iis
然后可以通過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]; //輸出第一個字段的值