mysql與mysqli的區(qū)別與用法說明
更新時間:2010年07月03日 00:34:30 作者:
mysql是非持繼連接函數(shù)而mysqli是永遠連接函數(shù)。
也就是說
mysql每次鏈接都會打開一個連接的進程而mysqli多次運行mysqli將使用同一連接進程,從而減少了服務(wù)器的開銷
有些朋友在編程的時候,使用new mysqli('localhost', usenamer', 'password', 'databasename');總是報錯,F(xiàn)atal error: Class 'mysqli' not found in d:\...
mysqli類不是php自帶的嗎?
不是默認開啟的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli編譯進去
mysql是非持繼連接函數(shù)而mysqli是永遠連接函數(shù),也就是說
mysql每次鏈接都會打開一個連接的進程而mysqli多次運行mysqli將使用同一連接進程,從而減少了服務(wù)器的開銷
有些朋友在編程的時候,使用new mysqli('localhost', usenamer', 'password', 'databasename');總是報錯,F(xiàn)atal error: Class 'mysqli' not found in d:\...
mysqli類不是php自帶的嗎?
不是默認開啟的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli編譯進去
mysqli的面向過程的使用:
$conn = mysqli_connect('localhost', 'root', '123', 'db_test') or ('error');
$sql = "select * from db_table";
$query = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($query)){
echo $row['title'];
}
mysqli的面向?qū)ο蟮氖褂茫?
$conn = mysqli('localhost', 'root', '123', 'db_test');
$sql = "select * from db_table";
$query = $conn->query($sql);
while($row = $query->fetch_array()){
echo $row['title'];
}
mysql_pconnect打開的連接不會關(guān)閉(即使調(diào)用mysql_close也不會關(guān)閉,因為對其無效),
類似于連接緩沖池,如果下次有來自于同一個機器的同一個用戶名
對同一個數(shù)據(jù)庫的連接,php會自動使用上次已經(jīng)建立的連接,而不需要再重新建立一個。
好處:是省去了每次與數(shù)據(jù)庫建立連接的開銷,
壞處:是需要浪費一些內(nèi)存,占用一些連接,
所以如果用戶訪問量大的時候會出現(xiàn)錯誤,要把mysql的max_connections參數(shù)改大一點, 或者使用mysql_connect()就解決問題。
首先兩個函數(shù)都是用來處理DB 的。
首先, mysqli 連接是永久連接,而mysql是非永久連接。什么意思呢? mysql連接每當?shù)诙问褂玫臅r候,都會重新打開一個新的進程,而mysqli則只使用同一個進程,這樣可以很大程度的減輕服務(wù)器端壓力。
其次,mysqli封裝了諸如事務(wù)等一些高級操作,同時封裝了DB操作過程中的很多可用的方法。具體查看 http://cn.php.net/mysqli
應(yīng)用比較多的地方是 mysqli的事務(wù)。
比如下面的示例:
$mysqli = new mysqli('localhost','root','','DB_Lib2Test');
$mysqli->autocommit(false);//開始事物
$mysqli->query($sql1);
$mysqli->query($sql2);
if(!$mysqli->errno){
$mysqli->commit();
echo 'ok';
}else{
echo 'err';
$mysqli->rollback();
}
mysql每次鏈接都會打開一個連接的進程而mysqli多次運行mysqli將使用同一連接進程,從而減少了服務(wù)器的開銷
有些朋友在編程的時候,使用new mysqli('localhost', usenamer', 'password', 'databasename');總是報錯,F(xiàn)atal error: Class 'mysqli' not found in d:\...
mysqli類不是php自帶的嗎?
不是默認開啟的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli編譯進去
mysql是非持繼連接函數(shù)而mysqli是永遠連接函數(shù),也就是說
mysql每次鏈接都會打開一個連接的進程而mysqli多次運行mysqli將使用同一連接進程,從而減少了服務(wù)器的開銷
有些朋友在編程的時候,使用new mysqli('localhost', usenamer', 'password', 'databasename');總是報錯,F(xiàn)atal error: Class 'mysqli' not found in d:\...
mysqli類不是php自帶的嗎?
不是默認開啟的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli編譯進去
mysqli的面向過程的使用:
復(fù)制代碼 代碼如下:
$conn = mysqli_connect('localhost', 'root', '123', 'db_test') or ('error');
$sql = "select * from db_table";
$query = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($query)){
echo $row['title'];
}
mysqli的面向?qū)ο蟮氖褂茫?
復(fù)制代碼 代碼如下:
$conn = mysqli('localhost', 'root', '123', 'db_test');
$sql = "select * from db_table";
$query = $conn->query($sql);
while($row = $query->fetch_array()){
echo $row['title'];
}
mysql_pconnect打開的連接不會關(guān)閉(即使調(diào)用mysql_close也不會關(guān)閉,因為對其無效),
類似于連接緩沖池,如果下次有來自于同一個機器的同一個用戶名
對同一個數(shù)據(jù)庫的連接,php會自動使用上次已經(jīng)建立的連接,而不需要再重新建立一個。
好處:是省去了每次與數(shù)據(jù)庫建立連接的開銷,
壞處:是需要浪費一些內(nèi)存,占用一些連接,
所以如果用戶訪問量大的時候會出現(xiàn)錯誤,要把mysql的max_connections參數(shù)改大一點, 或者使用mysql_connect()就解決問題。
首先兩個函數(shù)都是用來處理DB 的。
首先, mysqli 連接是永久連接,而mysql是非永久連接。什么意思呢? mysql連接每當?shù)诙问褂玫臅r候,都會重新打開一個新的進程,而mysqli則只使用同一個進程,這樣可以很大程度的減輕服務(wù)器端壓力。
其次,mysqli封裝了諸如事務(wù)等一些高級操作,同時封裝了DB操作過程中的很多可用的方法。具體查看 http://cn.php.net/mysqli
應(yīng)用比較多的地方是 mysqli的事務(wù)。
比如下面的示例:
復(fù)制代碼 代碼如下:
$mysqli = new mysqli('localhost','root','','DB_Lib2Test');
$mysqli->autocommit(false);//開始事物
$mysqli->query($sql1);
$mysqli->query($sql2);
if(!$mysqli->errno){
$mysqli->commit();
echo 'ok';
}else{
echo 'err';
$mysqli->rollback();
}
相關(guān)文章
mysql installer community 5.7.16安裝詳細教程
這篇文章主要為大家介紹了mysql installer community 5.7.16安裝詳細教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09
利用mysql的inet_aton()和inet_ntoa()函數(shù)存儲IP地址的方法分享
當前很多應(yīng)用都適用字符串char(15)來存儲IP地址(占用16個字節(jié)),利用inet_aton()和inet_ntoa()函數(shù),來存儲IP地址效率很高,適用unsigned int 就可以滿足需求,不需要使用bigint,只需要4個字節(jié),節(jié)省存儲空間,同時效率也高很多2012-03-03
MySQL學(xué)習之基礎(chǔ)命令實操總結(jié)
MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的。本文將為大家詳細介紹一些MySQL的基礎(chǔ)命令,需要的可以參考一下2022-03-03
MYSQL Left Join優(yōu)化(10秒優(yōu)化到20毫秒內(nèi))
在實際開發(fā)中,相信大多數(shù)人都會用到j(luò)oin進行連表查詢,但是有些人發(fā)現(xiàn),用join好像效率很低,而且驅(qū)動表不同,執(zhí)行時間也不同。那么join到底是如何執(zhí)行的呢,本文就詳細的介紹一下2021-12-12
MySQL獲取binlog的開始時間和結(jié)束時間(最新方法)
這篇文章主要介紹了MySQL如何獲取binlog的開始時間和結(jié)束時間,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05

