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自帶的嗎?
不是默認(rèn)開啟的,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自帶的嗎?
不是默認(rèn)開啟的,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連接每當(dāng)?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自帶的嗎?
不是默認(rèn)開啟的,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自帶的嗎?
不是默認(rèn)開啟的,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連接每當(dāng)?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)文章
MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errc
File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22) Character set ‘#33′ is not a compiled character set and is not specified in the ‘c:\mysql\share\charsets\Index’ file2013-08-08MySQL必備基礎(chǔ)之分組函數(shù) 聚合函數(shù) 分組查詢詳解
這篇文章主要介紹了MySQL分組函數(shù)、聚合函數(shù)、分組查詢,結(jié)合實例形式分析了MySQL查詢分組函數(shù)以及查詢聚合函數(shù)相關(guān)使用技巧,需要的朋友可以參考下2021-10-10MySQL?分區(qū)表中分區(qū)鍵為什么必須是主鍵的一部分
這篇文章主要介紹了MySQL?分區(qū)表中分區(qū)鍵為什么必須是主鍵的一部分,分區(qū)是一種表的設(shè)計模式,通俗地講表分區(qū)是將一大表,根據(jù)條件分割成若干個小表,更多相關(guān)資料需要的小伙伴可以參考下面文章內(nèi)容2022-03-03xampp中修改mysql默認(rèn)空密碼(root密碼)的方法分享
以前開發(fā)我一直都是用的phpnow做php開發(fā)環(huán)境,phpnow的特點就是一鍵安裝,安裝的時候會要求用戶輸入mysql的root密碼。今天由于客戶機器使用的xampp作為開發(fā)環(huán)境,所以碰到了修改mysql默認(rèn)空密碼的問題2014-04-04