我写了一些使用mysqli_
很多的代码。问题是我现在需要将此代码与正在使用的代码集成mysql_
,并负责连接、身份验证等。我不想创建第二个连接,但mysql_
缺少一些功能,例如准备好的查询。所以我想以某种方式神奇地将连接“导入”到mysqli
. 这甚至可能吗?如果是这样,那该怎么做?
3 回答
mysql_connect
不能通过 MySQLi 扩展重用创建的连接资源。您要么必须处理当前代码中的连接,要么重构旧代码。
这并不像听起来那么难。MySQLi 也有一个过程接口,您可以像使用旧的 MySQL 扩展一样使用该扩展。MySQLi 最大的好处是面向对象的接口,这将使重构变得更加复杂。MySQLi 本身也支持(包装到方法/函数中)MySQL 特性,如准备好的语句、事务和连接字符集,但这并不意味着你不能提交 aSTART TRANSACTION
或SET CHARSET utf8
就像你所做的那样mysql_query
希望这可以帮助。如果您对重构有更具体的问题,请随时提问:)
不,那是不可能的。
顺便说一句,准备好的语句并不是使查询安全的唯一方法。
它是每个人都应该使用的占位符,它们不一定必须使用准备好的语句来实现。
虽然占位符也可以使用 mysql_* 函数轻松实现
正如 F4r-20 指出的那样,您可以更改连接到数据库的方式并用函数替换mysql_
函数msqli_
!
尝试在开始项目之前决定要使用什么,而不是在中间。准备可以节省大量时间和此类问题。
PS。下次我会使用PDO 。它简单、快速、面向对象且支持多种数据库类型!
编辑:由于您无权访问凭据或连接到数据库的方式,您将不得不使用mysql_
、更改连接mysqli_
或建立新连接......对不起:(