Задача - выполнить проверку данных перед занесением в таблицу на соответствие максимальной длинне типа данных соответствующих полей в таблице. Пример - есть числа: 50, 100, 300. Нужно проверить, можно ли их поместить в поле типа TINYINT(4), и если нет, то сделать некоторое действие. После копания в документации нашел функцию SHOW COLUMNS. Но у нее есть много минусов для меня: 1) возвращает не только значения о типе данных поля, а вообще всю связанную с ним информацию. 2) данные о типе данных поля возваращаются в виде строки типа "varchar(255)", т.е. строку еще и парсить придется. Вопрос, как наиболее оптимально решить мою задачу? Меня интересует не готовый код, а логика и последовательность действий. Может быть есть более специфичные функции и процесс проверки можно как-то упростить? Или может быть даже готовые решения Всем спасибо, кто откликнется
http://framework.zend.com/manual/en/zend.db.html смотреть исходники в сторону Adapter_Abstract::describeTable() Аналогично, можно посмотреть исходники, как это сделано тут - http://www.doctrine-project.org/
Вариант "тупо пихать в поле и перехватывать exception" для mysql годится? В Oracle это обычно так и делают.
Неправда. В оракле есть вьюшки с этими данными в чистом виде. ALL_TABLES например. http://en.wikipedia.org/wiki/Oracle_metadata
А, извини, я понял о чем ты. Да ты прав, это как раз более правильный подход я считаю, проверять ошибки.