如何将mysql更改为mysqli
P粉124070451
2023-07-27 23:56:06
[PHP讨论组]
<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 MySQL Error Returned</b><br>' . 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)。
例如:
完成这些步骤后,请尝试执行您脚本的新版本...并检查是否一切正常;如果不正常...那就是时候去找错误了;-)