5

我想从 MySQL 切换到 MySQLi,但我有一个非常大的网站。

我读到https://wikis.oracle.com/display/mysql/Converting+to+MySQLi可以帮助我,我读了如何将这个 mysql 更改为 mysqli?. 它说我可以通过在函数中添加一个“i”来替换大多数函数,并且我应该开始寻找错误。

但是我的网站非常复杂且庞大,需要很长时间才能检查一切是否正常。那么:对于一个非常大的网站,从 MySQL 切换到 MySQLi 的最佳方式是什么?

谢谢!

4

2 回答 2

4

您的问题没有简单的答案,因为几乎所有简单的方法都涉及在编写应用程序时以不同的方式做事。

如果您在整个代码中直接调用 mysql_* 函数,并且没有通过帮助类或函数进行查询的数据库抽象层,那么您将需要编辑每个命令。

您不能只是在 mysql_query 之类的命令中添加 i,因为程序mysqli_query()上要求第一个参数是到 db 的链接,mysql_query()如果有连接,它是第二个参数。

而不是仅仅将 mysql_query(...) 更改为 mysqli_query($link,.....) 我会建议没有更好的时间来放置一个 db 抽象层。因此,请使用实际处理您的查询的函数,例如 sql_query(),以便将来如果您需要再次更改数据库,您只需更新一个抽象文件中的数据库特定命令。这样,如果您编写一个包装 mysqli_query 的函数,那么您可以简单地将 mysql_query() 重命名为您的辅助函数,并让辅助函数担心将链接放在那里。

虽然这是最简单的方法,但它不会绑定参数或准备语句,这是防止 sql 注入漏洞的主要因素

更改所有这些命令后,您需要进行测试。

如果您没有编写自动化测试,那么这可能是开始编写它们的好时机。即使您需要检查每个更改是否有效,但如果您通过自动化测试进行,那么您将来可以避免这种痛苦。

于 2013-07-18T11:01:23.337 回答
-1

您正在采取正确的行动,因为 mysql_* 函数已被最新的 php 版本弃用。你应该为此目的下载一个转换器......看到这个并下载...... mysql to mysqli

于 2013-07-18T10:54:41.043 回答