【问题标题】:PHP interpreter gets undefined constant OCI_COMMIT_ON_SUCCESS with ADODBPHP 解释器使用 ADODB 获取未定义的常量 OCI_COMMIT_ON_SUCCESS
【发布时间】:2012-04-10 06:42:07
【问题描述】:


我编写了一个必须在 php 解释器(没有 Apache)上运行的 php 脚本,该解释器将 adodb 库与 Oracle 数据库一起使用,但是当我尝试运行它时,出现以下错误:

PHP Notice:  Use of undefined constant OCI_COMMIT_ON_SUCCESS - assumed 'OCI_COMMIT_ON_SUCCESS' in c:\proyect\backend\libraries\adodb\adodb.inc.php on line 4248


我已经检查过了,并且启用了 php_oci8 和 php_oci8_11g,所以应该定义常量。此外,当我使用 Apache 运行此脚本时,它可以正常工作。

提前致谢!

【问题讨论】:

    标签: php oracle11g interpreter adodb oracle-call-interface


    【解决方案1】:

    我在使用 32 位和 64 位时遇到了 wamp 问题。我必须使用 32 位 Oracle 瘦客户端和 32 位 wamp 服务器才能使其正常工作。

    【讨论】:

      【解决方案2】:

      经过快速搜索,我找到了this page。如果您没有在 php.ini 中启用 oracle 扩展,则该常量未定义。尝试搜索该行

      ;extension=php_oci8.dll
      

      在您的 php.ini 中并删除分号以取消注释。然后,重新启动 Apache 以加载模块并查看它是否连接。

      编辑:

      尝试通过执行print_r(ini_get_all()) 之类的操作来转储 php.ini 变量,看看设置了什么,没有设置什么。您可能在命令行中使用了不同的 php.ini。

      【讨论】:

      • 正如我的帖子所说,我启用了两个扩展。当我尝试在控制台上使用解释器时,问题就来了..
      • 尝试通过执行print_r(ini_get_all()) 之类的操作来转储 php.ini 变量,然后查看设置的内容和未设置的内容。您可能在命令行中使用了不同的 php.ini。
      • 我的完整答案 :) 正如我的帖子所说,我启用了两个扩展。当我在控制台上使用解释器时,问题就来了。但是,我意识到控制台上的 php 解释器正在使用不同的 php.ini,因此,扩展确实被禁用了。谢谢!
      • 太棒了!我会更新答案,以便其他人可以更轻松地找到它。很高兴听到您的问题得到解决。
      猜你喜欢
      • 1970-01-01
      • 2016-02-29
      • 2014-06-29
      • 2018-03-08
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      相关资源
      最近更新 更多