1

我写了一些使用mysqli_很多的代码。问题是我现在需要将此代码与正在使用的代码集成mysql_,并负责连接、身份验证等。我不想创建第二个连接,但mysql_缺少一些功能,例如准备好的查询。所以我想以某种方式神奇地将连接“导入”到mysqli. 这甚至可能吗?如果是这样,那该怎么做?

4

3 回答 3

0

mysql_connect不能通过 MySQLi 扩展重用创建的连接资源。您要么必须处理当前代码中的连接,要么重构旧代码。

这并不像听起来那么难。MySQLi 也有一个过程接口,您可以像使用旧的 MySQL 扩展一样使用该扩展。MySQLi 最大的好处是面向对象的接口,这将使重构变得更加复杂。MySQLi 本身也支持(包装到方法/函数中)MySQL 特性,如准备好的语句、事务和连接字符集,但这并不意味着你不能提交 aSTART TRANSACTIONSET CHARSET utf8就像你所做的那样mysql_query

希望这可以帮助。如果您对重构有更具体的问题,请随时提问:)

于 2013-01-18T09:10:57.567 回答
0

不,那是不可能的。

顺便说一句,准备好的语句并不是使查询安全的唯一方法。
它是每个人都应该使用的占位符,它们不一定必须使用准备好的语句来实现。
虽然占位符也可以使用 mysql_* 函数轻松实现

于 2013-01-18T09:02:19.423 回答
-1

正如 F4r-20 指出的那样,您可以更改连接到数据库的方式并用函数替换mysql_函数msqli_

尝试在开始项目之前决定要使用什么,而不是在中间。准备可以节省大量时间和此类问题。


PS。下次我会使用PDO 。它简单、快速、面向对象且支持多种数据库类型!


编辑:由于您无权访问凭据或连接到数据库的方式,您将不得不使用mysql_、更改连接mysqli_或建立新连接......对不起:(

于 2013-01-18T08:54:17.937 回答