В PHP получает сообщение "Class" PDO "не найден" при попытке подключения к Oracle DB

70
8

Я пытаюсь подключиться к моей базе данных оракула, используя PDO, но я получаю Ошибка класса 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


Это код, который я использую для подключения к db.


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

Может ли быть другая причина, по которой я получаю эту ошибку? Любая помощь была оценена.

спросил(а) 2009-09-17T04:11:00+04:00 11 лет назад
1
Решение
57

Это обычно означает, что расширение PDO, о котором идет речь, не компилируется и не настраивается, поэтому PHP может его использовать. В какой операционной системе вы компилируете PHP?


Я не уверен, что основной модуль PDO скомпилирован, если вы только указываете, чтобы скомпилировать расширение oracle (PDO-OCI).

Вы должны ознакомиться с руководством по PHP, касающимся установки и включения модуля PDO.


Вы должны посмотреть на эти сайты:
http://is.php.net/manual/en/pdo.installation.php
http://is.php.net/manual/en/ref.pdo-oci.php

ответил(а) 2009-09-20T00:36:00+04:00 11 лет назад
40

Проверьте мой вопрос, я устраняю эту и другие ошибки, но затем я застрял,
Не найдено записей... Agiletoolkit и Oracle. Элементы сетки /CRUD


Моя строка подключения Oracle в файле config-default.php agiletoolkit выглядит следующим образом:


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

Чтобы исправить ошибку, не найденную драйвером, я включил расширение php_pdo_oci8.dll в файле php.ini из установки apache.


Тогда возникла ошибка в отношении отсутствующего "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, я установил строку 59 на /atk 4/lib/DB/dsql.php для пустого строки следующим образом: public $bt='';


Мне удалось запустить тест базы данных, и он говорит: "Успешно подключен к базе данных".

ответил(а) 2014-09-12T09:57:00+04:00 6 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема