php中mysql和mysqli的總結


首先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]; //輸出第一個字段的值 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM