Как эмулировать PDO :: getColumnData () с помощью Oracle? - PullRequest
0 голосов
/ 05 июня 2019

У меня есть ванильное приложение PHP 7, которое (нацелено) поддерживает MySQL, Postgres, SQL Server и Oracle.

Я столкнулся с проблемой сейчас, потому что все, кроме Oracle (pdo_oci), поддерживают getColumnData ()

$statement   = $pdo->query('SELECT titulo, preco FROM livro');
$metadados   = $statement->getColumnMeta(0);

MySQL:

array(7) { ["native_type"]=> string(10) "VAR_STRING" ["pdo_type"]=> int(2) ["flags"]=> array(1) { [0]=> string(8) "not_null" } ["table"]=> string(5) "livro" ["name"]=> string(6) "titulo" ["len"]=> int(765) ["precision"]=> int(0) } 

Postgres:

array(8) { ["pgsql:oid"]=> int(1043) ["pgsql:table_oid"]=> int(16585) ["table"]=> string(5) "livro" ["native_type"]=> string(7) "varchar" ["name"]=> string(6) "titulo" ["len"]=> int(-1) ["precision"]=> int(259) ["pdo_type"]=> int(2) } 

SQLServer:

array(8) { ["flags"]=> int(0) ["sqlsrv:decl_type"]=> string(7) "varchar" ["native_type"]=> string(6) "string" ["table"]=> string(0) "" ["pdo_type"]=> int(2) ["name"]=> string(6) "titulo" ["len"]=> int(255) ["precision"]=> int(0) }

Есть ли способ эмулировать подобноерезультат из других драйверов, но с использованием pdo_oci?

1 Ответ

1 голос
/ 18 июня 2019

PHP 7.4 добавляет поддержку PDO_OCI для этого: bugs.php.net/bug.php?id=76908

...