我正在尝试使用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());
}
我是否有任何其他原因导致此错误?任何帮助表示赞赏。
答案 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='';
我设法运行数据库测试,并说“已成功连接到数据库。”