在 PHP 中获取“类‘PDO’”未找到”尝试连接到 Oracle DB 时出错

发布于 2024-08-05 04:02:17 字数 708 浏览 2 评论 0原文

我正在尝试使用 PDO 连接到我的 Oracle 数据库,但收到未找到类 PDO 错误。我已检查 PDO 是否已启用,并且看起来如此。我仍然无法追踪为什么会出现此错误。这是我的配置命令,

cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" 
"--with-snapshot-template=d:\php-sdk\snap_5_2\vc6\x86\template" 
"--with-php-build=d:\php-sdk\snap_5_2\vc6\x86\php_build" 
"--with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared" 
"--with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared"

PHP 版本:5.2.8 Oracle:10.2

这是我用来连接数据库的代码。

try{
    $conn = new PDO("oci:dbname=".$oc_db,$oc_user,$oc_pass);
}catch(PDOException $e){
    echo ($e->getMessage());
}

还有其他原因导致我收到此错误吗?任何帮助表示赞赏。

I am trying to connect to my oracle database using PDO but I am getting Class PDO not found error. I have checked that PDO is enabled and it appears so. Still I am not able to trace why I am getting this error. Here is my configure command,

cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" 
"--with-snapshot-template=d:\php-sdk\snap_5_2\vc6\x86\template" 
"--with-php-build=d:\php-sdk\snap_5_2\vc6\x86\php_build" 
"--with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared" 
"--with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared"

PHP ver : 5.2.8
Oracle: 10.2

This is the code I am using to connect to the db.

try{
    $conn = new PDO("oci:dbname=".$oc_db,$oc_user,$oc_pass);
}catch(PDOException $e){
    echo ($e->getMessage());
}

Can there be any other reason that I am getting this error? Any help appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨落成白 2024-08-12 04:02:17

这通常意味着相关 PDO 扩展未编译和设置,因此 PHP 可以使用它。您在什么操作系统上编译 PHP?

如果您只指定编译它的 oracle 扩展(PDO-OCI),我不确定是否编译了 PDO 核心模块。

您应该查看 PHP 手册,了解如何安装和启用 PDO 模块。

你应该看看这些网站:
http://is.php.net/manual/en/pdo.installation。 php
http://is.php.net/manual/en/ref。 pdo-oci.php

This generally means the PDO extension in question isn't compiled and set up so PHP can use it. What operating system are you compiling PHP on?

I'm not sure if PDO core module is compiled if you only specify to compile the oracle extension of it (PDO-OCI).

You should check out the PHP manual regarding how to install and enable the PDO module.

You should look at these sites:
http://is.php.net/manual/en/pdo.installation.php
http://is.php.net/manual/en/ref.pdo-oci.php

離殇 2024-08-12 04:02:17

检查我的问题我解决了这个错误和其他错误,但后来我陷入困境,
未找到记录...Agiletoolkit 和 Oracle。网格/CRUD 元素

我在agiletoolkit config-default.php 文件中的Oracle 连接字符串如下所示:

$config['dsn']= array( 'oci:dbname=localhost/MYDATABASE', 'MYUSER', 'MYPASSWORD' );

为了修复未找到驱动程序错误,我在apache 安装的php.ini 文件中启用了extension=php_pdo_oci8.dll。

然后出现了一个关于缺少“oci.php”的错误,为了解决这个问题,我必须创建自己的文件,如下所示:

class DB_dsql_oci extends DB_dsql {
    function limit($cnt,$shift=0){
        $cnt+=$shift;

    $this->where('NUM_ROWS>=',$shift);
        $this->where('NUM_ROWS<',$cnt);
        return $this;
    }
    function render_limit(){
        return '';
    }
}

并将其放置在:...atk4\lib\DB\dsql

要修复来自 oracle 的特殊字符错误,我将 /atk4/lib/DB/dsql.php 上的第 59 行设置为空字符串,如下所示: public $bt='';

我设法运行数据库测试,它显示“已成功连接到数据库。”

Check my question I troubleshoot this and other errors but then Im stuck,
No records found ...Agiletoolkit and Oracle. Grid/CRUD elements

My Oracle connection string in agiletoolkit config-default.php file looks like this:

$config['dsn']= array( 'oci:dbname=localhost/MYDATABASE', 'MYUSER', 'MYPASSWORD' );

To fix the driver not found error, I enabled extension=php_pdo_oci8.dll in the php.ini file from my apache installation.

Then there was an error about a missing "oci.php", to solve that I had to create my own file like this:

class DB_dsql_oci extends DB_dsql {
    function limit($cnt,$shift=0){
        $cnt+=$shift;

    $this->where('NUM_ROWS>=',$shift);
        $this->where('NUM_ROWS<',$cnt);
        return $this;
    }
    function render_limit(){
        return '';
    }
}

and placed it at: ...atk4\lib\DB\dsql

To fix the special chars error from oracle , I set line 59 on /atk4/lib/DB/dsql.php to empty string like this: public $bt='';

I manage to run the database test, and it says "Successfully connected to database."

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文