【问题标题】:Yii2 Oracle PDOYii2 Oracle PDO
【发布时间】:2016-04-05 11:48:23
【问题描述】:

我的 php.ini 文件中有以下内容

extension=php_oci8_11g.dll

extension=php_pdo_oci.dll

当我运行 phpinfo() 时,我得到以下信息:

PDO_OCI 为空白是否意味着我遗漏了一些东西 - 如果是这样怎么办?

在浏览 Yii 文档 (http://www.yiiframework.com/doc-2.0/yii-db-connection.html) 时,它说

Connection represents a connection to a database via PDO.

在我尝试使用 bindParam() 之前,我的查询一直运行良好。现在我在哪个错误中得到Class 'app\models\PDO' not found

我刚刚运行了if(class_exists("PDO")),它返回了 true。

【问题讨论】:

  • PDO_OCI 不为空。它说您拥有适用于 oracle 版本 8 或更高版本的驱动程序并且已启用。在PDO 条目中,它说oci 可用。
  • @RyanVincent 感谢您的确认。所以我应该能够毫无问题地运行 PDO 查询?
  • 如果您在命名空间代码中使用 PDO 常量,那么您需要使用 \PDO 例如\PDO::OCI_INT。由于 PDO 在全局命名空间中。默认情况下,PHP 使用当前命名空间为不合格的类名添加前缀。因此出现错误消息。

标签: php pdo oracle11g yii2


【解决方案1】:

我花了一些时间在 gitter 上并对其进行了研究。正如 Ryan 提到的,我似乎确实需要命名 PDO 来运行这些查询

所以在模型中声明。

use PDO;

【讨论】:

    猜你喜欢
    • 2016-03-04
    • 2016-09-03
    • 2014-01-03
    • 1970-01-01
    • 2013-12-14
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    相关资源
    最近更新 更多