【问题标题】:CodeIgniter switching driver from mysql --> mysqliCodeIgniter 从 mysql 切换驱动程序 --> mysqli
【发布时间】:2014-02-04 00:20:14
【问题描述】:

我正在阅读这个问题: The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

这让我想到我应该从 mysql 更改为 mysqli。这是 CodeIgniter 中的一个字符更改,所以它不是很难:)

但是我应该注意什么以发现可能发生的任何错误?是否存在某些不同处理的查询?

【问题讨论】:

    标签: php mysql codeigniter mysqli


    【解决方案1】:

    是否有某些查询被区别对待?

    没有。

    MySQL 和 MySQLi 扩展是“驱动程序”,负责 PHP 和 MySQL 数据库服务器之间的通信

    他们确实改变 MySQL 服务器理解的 SQL 命令的范围。

    因此,只要 DB 抽象层负责将 PHP 函数用于什么目的(像 CI 这样的框架肯定应该这样做),就无需担心实际查询.

    【讨论】:

    • 太好了,我觉得切换起来更舒服
    • @CBroe 先生,我现在有现有的程序/系统,当我了解未来 mysql 的贬值时,我决定在新项目中切换到 mysqli,并将旧项目保留为 mysql。这很好/可以,我可以让旧系统继续运行,还是我也应该转换/切换它们?如果最好将旧系统切换到 mysqli,那么最简单/最简单的方法是什么?我必须将系统的每页都替换为 mysqli 吗?
    • @Aljie:嗯,“永远不要碰正在运行的系统”是一条基本的 IT 规则,不是吗? :-) 但是一旦 PHP 完全放弃对 MySQL 扩展的支持,您将无法再在当前最新的 PHP 安装上运行您的脚本。如果您可以控制一般系统架构,那么与它可能构成的威胁和更新脚本的成本相比,这是否值得冒险由您决定。
    • 虽然您可以相当通过手动调整代码从 MySQL 转到 MySQLi(例如,无需切换到准备好的语句,您可以保持所有程序样式) ,这并不像在脚本目录上运行简单的字符串替换那样简单,因为对于大多数函数,参数的顺序已经改变(通常程序 MySQLi 函数需要连接标识符作为第一个参数)。
    • 我想这就是使用数据库抽象层的好处。如果做得好,这很容易。升级我的 codeigniter 应用程序后,我不得不更新我的网站,它没有使用任何抽象层。看起来我大约需要 4-5 小时才能再次升级和测试每个功能。很痛苦,但做了之后感觉好多了!
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2014-07-09
    • 2020-06-11
    • 1970-01-01
    • 2015-11-24
    • 2014-12-21
    • 2020-12-14
    • 2012-11-11
    相关资源
    最近更新 更多