PHP подключен к ORACLE, но не может получить доступ к строкам таблицы

Я установил PHP и ORACLE на Windows 7.

Затем я подключил PHP к ORACLE, используя PDO, вот так:

$tns = "(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oradb)
)
)";

$db_username = "C##OTO_USER";
$db_password = "oto_user_pass";

try{
$conn = new PDO('oci:dbname='.$tns.';charset=UTF8',$db_username,$db_password);
}catch(PDOException $e){
echo ($e->getMessage());
}

После подключения я пытаюсь запросить таблицу:

$sth = $conn->prepare("SELECT * FROM mytable");
$sth->execute();
if ($sth->errorInfo()[2] === NULL) { // if no error, print returned result
$res = $sth->fetchAll(PDO::FETCH_ASSOC);
var_dump($res);

}
else { // if some error, print error message
echo $sth->errorInfo()[2];
}

Странно, что запрос возвращает пустой массив, как будто в mytable нет строк, хотя есть строки, если они выполняются SELECT * FROM mytable в SQL DEVELOPER, вернул все строки.

Кроме того, если сделать ошибку сознательно, то PHP PDO возвращает ошибку, например, попробуйте выбрать из несуществующей таблицы «mytable_bla», что дает:

OCIStmtExecute: ORA-00942: table or view does not exist (ext\pdo_oci\oci_statement.c:148)

Итак, PDO подключен к ORACLE DB, но не видит строки из таблицы, когда на самом деле есть строки в таблице.

Чем это может быть вызвано?

РЕДАКТИРОВАТЬ

Я заметил, что PDO не видит новые созданные строки таблицы, но видит переименованные строки таблицы.

Например RENAME mytable TO mytable2затем PDO видит строки из mytable2

0

Решение

Попробуйте прикрепить имя схемы к имени таблицы следующим образом:

$sth = $conn->prepare("SELECT * FROM yourSchemeName.mytable");
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]