Я знаю, что этой ветке 1+ лет, но если другие наткнуться на нее, как я на поиске, это может быть полезно.
У меня есть класс-оболочка базы данных PDO, который я создал, и вот мой метод для этого в моем классе.Я не знаю, насколько это портативно, поскольку я никогда не использовал оракул, но он работает для моей ситуации, используя MySql.Для этого требуется, чтобы СУБД поддерживала «SHOW COLUMNS FROM», поэтому она должна работать с любыми СУБД, поддерживающими это.
Как видно, я использую блок try / catch для перехвата любых исключений PDO, которые могут произойти, и регистрации ошибок.
/**
* @ getFieldType - gets the field data type for a specific field in a table.
*
* @ param type: text $table = The name oof a data table.
* @ param type: text $field = A field in the data table.
*/
public static function getFieldType($table, $field) {
$ret = false;
$sql = "SHOW COLUMNS FROM `$table` WHERE Field = '$field'";
try {
$result = self::dbQueryRow($sql);
$ret = $result['Type'];
} catch (PDOException $e) {
self::logError($e, "getFieldType", $sql);
}
return $ret;
} //End public static function getFieldType
Используемые здесь методы dbQueryRow и logError должны быть selfобъяснение.
Надеюсь, что это полезно