2015-04-20 4 views
0

Если у меня есть таблица с некоторыми столбцами varchar, длина которых, очевидно, будет ограничена, тогда мне придется показывать на интерфейсе всякий раз, когда сбрасывается слишком большое значение. Например, если лимит на столбце name равен 20, но кто-то вводит имя длиной 30 символов, я должен уведомить об ошибке.Могу ли я проверить, были ли данные усечены после запроса?

Это очень много работает, когда приложение становится большим.

Что бы я хотел, чтобы сделать жизнь немного проще и пропустить индивидуальные ограничения на каждом шагу пути пользователей, просто продолжать нормальное функционирование приложения, но покажите им предупреждение что их данные не были сохранены полностью, потому что они были слишком длинными. Поэтому, если MySQL предоставит некоторый метод, который позволил бы мне спросить, были ли все данные сохранены полностью, или некоторые strings были усечены из-за того, что их соответствующие поля varchar были короче (или, может быть, свойство объекта MySQLi, которое я могу проверить) тогда мой основной метод сохранения данных в базе данных всегда мог бы проверить, что после того, как были выполнены какие-либо inserts или updates, и просто выпустите предупреждение при загрузке следующей страницы.

Предоставляет ли MySQL (или MySQLi) такую ​​функциональность?

ответ

0

Уверенный, вы можете. MySQL выдает предупреждение, когда данные усекаются.

Вы можете проверить любое предупреждение произошло путем проверки @@warning_count

SELECT @@warning_count; 

Или

SHOW COUNT(*) WARNINGS; 

Чтобы проверить, что предупреждение произошло:

SHOW WARNINGS [LIMIT [offset,] row_count] 

Подробнее: http://dev.mysql.com/doc/refman/5.0/en/show-warnings.html

Смежные вопросы