在我努力使用 mysql_* 更新我的代码时,我遇到了一大堆痛苦。
我决定使用 mysqli 更改我的代码,首先是程序风格。在了解了更多之后,我认为实际上面向对象的风格更好。在使用准备好的语句时,我在尝试使用 get_result() 时遇到了问题。我想使用它,因为我有很多需要绑定的字段。因此,在调查了这个问题之后,您似乎需要 mysqlnd 驱动程序才能使用它,该驱动程序仅在 PHP 5.4 版中可用。我使用的是 5.3 版,所以决定升级。
升级后,我仍然有错误。在追了很长时间之后,因为这绝对超出了我的知识范围,我发现 mysqlnd 没有为 mysqli 启用。
在与我的虚拟主机支持人员交谈后,我得到了以下回复:
似乎 mysqli 只能针对旧的 libmysql 库或 mysqlnd 构建。cPanel 显然默认使用较旧的库,因为 mysqli 已与较旧的库一起使用了很长时间。
我们可以尝试强制 mysqli 针对 mysqlnd 构建......但我不知道如果任何其他站点已经对旧库使用 mysqli 这可能会产生什么影响
这听起来不是一个好主意,在这个阶段(浪费了大量时间)我想我不应该打扰,而是坚持使用 mysql_* 。
PDO 已被提及,但我对此一无所知。好像和mysqli很像?我真的不想花更多的时间去学习另一个新东西,然后才会在更远的地方遇到类似的砖墙。
当然没有任何计划切换到不同类型的数据库,那么这不是破坏了使用 PDO 的目的吗?我是否应该尝试找到一些与 get_result() 执行相同操作但在 5.3 中有效的代码?