在PHP中尝试连接到Oracle DB时出现“未找到”类'PDO'错误

时间:2009-09-17 01:11:13

标签: php oracle pdo

我正在尝试使用PDO连接到我的oracle数据库,但是我发现未找到类PDO错误。我已经检查过PDO已启用且显示如此。我仍然无法追查为什么我收到此错误。这是我的configure命令,

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

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

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

我是否有任何其他原因导致此错误?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

这通常意味着不会编译和设置有问题的PDO扩展,因此PHP可以使用它。您在编译PHP的操作系统是什么?

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

您应该查看有关如何安装和启用PDO模块的PHP手册。

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

答案 1 :(得分:0)

检查我的问题我对此错误和其他错误进行了排查,但后来卡住了, No records found ...Agiletoolkit and Oracle. Grid/CRUD elements

agiletoolkit config-default.php文件中的My 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='';

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