【问题标题】:Set MySQL fetch mode globaly全局设置 MySQL fetch 模式
【发布时间】:2022-04-18 14:11:34
【问题描述】:

我们最近将应用程序迁移到了新服务器。自从我们迁移以来,我们遇到了很多 PHP message: PHP Fatal error: Call to undefined method stdClass::toArray() 错误。我已经发现,这可能与我们的 SQL 语句在新环境中返回对象而不是数组有关。 当我们使用 ADODB 时,我也已经发现,这种行为是因为 $ADODB_FETCH_MODE。在我们的应用程序中,它设置为ADODB_FETCH_DEFAULT 。正如documentation 所说,这意味着

记录集以 PHP 驱动程序提供的默认值返回。如果编写跨数据库应用程序,不建议使用此值

所以我的假设是“新”PHP 驱动程序的配置与旧驱动程序不同。但是如何才能知道 PHP 驱动程序的默认配置是什么,以及如何在不更改实际应用程序代码的情况下更改它?

谢谢!

【问题讨论】:

  • 驱动程序及其默认值被编译成 PHP,所以除非您想从头开始重新编译,否则我建议添加几行新行来设置您想要的值,而不是依赖默认值。跨度>
  • 我就是这么想的。希望有一种方法可以在 php.ini 或类似的东西中配置它。

标签: php mysql adodb-php


【解决方案1】:

我建议设置您需要的 ADOdb 获取模式,而不是依赖默认值。这可以在全局范围内完成,例如

$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;

或每个连接

$db->setFetchMode(ADODB_FETCH_ASSOC);

【讨论】:

    猜你喜欢
    • 2011-01-20
    • 2015-12-21
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多