如何將mysql改為mysqli
P粉124070451
2023-07-27 23:56:06
<p>基於下面的程式碼,我用於常規的mysql,我應該如何將其轉換為使用mysqli? </p><p>只要將mysql_query($sql);改為mysqli_query($sql);,是這樣簡單嗎? </p><p><strong><code></code><code></code></strong></p>
<pre class="brush:php;toolbar:false;"><?PHP
//in my header file that is included on every page I have this
$DB["dbName"] = "emails";
$DB["host"] = "localhost";
$DB["user"] = "root";
$DB["pass"] = "";
$link = mysql_connect($DB['host'], $DB['user'], $DB['pass']) or die("<center>An Internal Error has Occured. Please report following error to the webmaster .<br><br>".mysql_error()."'</center>");
mysql_select_db($DB['dbName']);
// end header connection part
// function from a functions file that I run a mysql query through in any page.
function executeQuery($sql) {
$result = mysql_query($sql);
if (mysql_error()) {
$error = '<BR><center><font size=" 1" face="arial" color="red">An Internal Error has Occured.<BR> The error has been recorded for review< /font></center><br>';
if ($_SESSION['auto_id'] == 1) {
$sql_formatted = highlight_string(stripslashes($sql), true);
$error .= '<b>The MySQL Syntax Used</b><br>' . $sql_formatted . '<br><br><b>The My MySQL Error Returned<<br><b>The My MySQL Error Returned<<br><b>The MySQL Error Returned</b>lt;/b> ;' . mysql_error();
}
die($error);
}
return $result;
}
// example query ran on anypage of the site using executeQuery function
$sql='SELECT auto_id FROM friend_reg_user WHERE auto_id=' .$info['auto_id'];
$result_member=executequery($sql);
if($line_member=mysql_fetch_array($result_member)){
extract($line_member);
} else {
header("location: index.php");
exit;
}
?></pre>
<p><br /></p>
(我意識到這是舊問題,但它仍然經常出現...)
如果您確實將mysql_*替換為mysqli_*,請記住許多mysqli_*函數需要傳遞資料庫連接。
例如:
變成了:
也就是說,需要進行大量的檢查。
首先,您可能需要將每個mysql_*函數呼叫替換為其對應的mysqli_*函數,至少如果您願意使用過程式API的話——考慮到您已經有一些基於MySQL API的程式碼,這將是更簡單的方法,因為MySQL API是過程式的。
為了幫助您,MySQLi擴充函數摘要無疑會非常有幫助。
例如:
mysql_connect將被替換為mysqli_connect。
mysql_error將根據上下文被替換為mysqli_error和/或mysqli_connect_error。
mysql_query將被替換為mysqli_query。
注意:對於某些函數,您可能需要仔細檢查參數:可能會有一些細微的差異,但我想說的是不多:無論是mysql還是mysqli都是基於相同的函式庫( libmysql;至少對於PHP <= 5.2)。
例如:
完成這些步驟後,請嘗試執行您腳本的新版本...並檢查是否一切正常;如果不正常...那就是時候去找錯誤了;-)