【问题标题】:zend framework 2 with db oracle带有数据库 oracle 的 zend 框架 2
【发布时间】:2026-02-11 04:00:01
【问题描述】:

我使用 xamppv3.2.2 使用 PHP 版本 5.6.14 使用视窗 8.1 使用zend框架2

我尝试连接到 Oracle DB(在其他远程机器上)

我可以尝试设置环境变量。

但我总是收到相同的错误消息:

Zend\Db\Adapter\Exception\RuntimeException

文件: C:\xampp\htdocs\zendframework\zend-db\src\Adapter\Driver\Oci8\Oci8.php:149

"此适配器需要 Oci8 扩展,但扩展是 未加载”

请帮帮我

谢谢

【问题讨论】:

  • 您的php.ini 中没有配置oracle 扩展。
  • 是的,我在 php.ini 中设置了“extension=php_oci8.dll”,但我得到了同样的错误
  • 您是否安装了oracle db server
  • 不,我有 Sql Developer 用于查看数据库中的数据,oracle 数据库是远程的
  • 为什么不使用PDOmysqli_ 扩展

标签: php oracle zend-framework2 php-extension


【解决方案1】:

您应该尝试使用PDO 扩展名。或使用mysqli 扩展名。了解更多关于它的信息 Php PDO extension.

测试代码:

$param = $_POST;
$db_username = "youusername";
$db_password = "yourpassword";
$db = "oci:dbname=yoursid";
$conn = new PDO($db,$db_username,$db_password);
$name = $param['module'];
$file = $param['file'];
$stmt = $conn->exec("INSERT INTO AL_MODULE (AL_MODULENAME, AL_MODULEFILE) VALUES ('$name', '$file')");

【讨论】:

  • 好主意! - 我使用 PDO_OCI 和 PHP,我可以连接!!
【解决方案2】:

您需要为 PHP 安装 Oci8 扩展。通常您只需将 php.ini 中的 ;extension=php_oci8.dll 行更改为 extension=php_oci8.dll 并重新启动服务器即可。

完整的安装说明可以在这里找到 http://php.net/manual/en/oci8.installation.php

【讨论】:

  • 我在我的 php.ini 中进行了这个更改 - “extension=php_oci8.dll”,我得到了同样的错误。
  • 但我也设置了 :extension=php_pdo_oci.dll 所以在 phpinfo() 中我发现:“PDO 驱动程序 - mysql, oci”。并且:“OCI 8 及更高版本的 PDO 驱动程序 - 已启用”但我得到相同的错误
  • 我发现这条消息link
【解决方案3】:

我使用:

'db2' => array(
'driver'    => 'Pdo',
'dsn'   => 'oci:dbname=(DESCRIPTION =
    (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = *.com)(PORT = 1521))
    )
    (CONNECT_DATA =
        (SERVICE_NAME = aprx)
    ))',
'username'      => 'yourUser', 
'password'      => 'yourPass',
'platform_options' => array('quote_identifiers' => false)
),

重要的我设置: 'platform_options' => 数组('quote_identifiers' => false) 在 dbOracle 上使用 sql 查询

感谢您的帮助@mega6382

【讨论】: