如何将mysql更改为mysqli
P粉124070451
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;">&lt;?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("&lt;center&gt;An Internal Error has Occured. Please report following error to the webmaster.&lt;br&gt;&lt;br&gt;".mysql_error()."'&lt;/center&gt;"); 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 = '&lt;BR&gt;&lt;center&gt;&lt;font size="+1" face="arial" color="red"&gt;An Internal Error has Occured.&lt;BR&gt; The error has been recorded for review&lt;/font&gt;&lt;/center&gt;&lt;br&gt;'; if ($_SESSION['auto_id'] == 1) { $sql_formatted = highlight_string(stripslashes($sql), true); $error .= '&lt;b&gt;The MySQL Syntax Used&lt;/b&gt;&lt;br&gt;' . $sql_formatted . '&lt;br&gt;&lt;br&gt;&lt;b&gt;The MySQL Error Returned&lt;/b&gt;&lt;br&gt;' . 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; } ?&gt;</pre> <p><br /></p>
P粉124070451
P粉124070451

全部回复(2)
P粉663883862

(我意识到这是老问题,但它仍然经常出现...)

如果您确实将mysql_*替换为mysqli_*,请记住许多mysqli_*函数需要传递数据库连接。

例如:


mysql_query($query)

变成了:

mysqli_query($link, $query)

也就是说,需要进行大量的检查。

P粉132730839

首先,您可能需要将每个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)。

例如:

  • 使用mysql,您必须在连接后使用mysql_select_db来指示您要在哪个数据库上执行查询
  • 而mysqli则允许您将数据库名称作为mysqli_connect的第四个参数来指定。
  • 不过,还有一个mysqli_select_db函数可供您使用,如果您更喜欢的话。

完成这些步骤后,请尝试执行您脚本的新版本...并检查是否一切正常;如果不正常...那就是时候去找错误了;-)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号