2010-06-12 5 views
4

Как получить максимальную длину указанного столбца в php?MySQL выбирает длину столбца в php

Например, эта таблица:

идентификатор - INT (11) имя - строка (20)

Я хочу в PHP, чтобы выбрать максимальное количество символов, поле может иметь, как SELECT length (name) from table1

, и он должен затем вернуть 20 (с его максимального количества символов для этого поля).

ответ

7

Вы должны использовать mysql_field_len

http://php.net/manual/en/function.mysql-field-len.php

+1

Обратите внимание, что это эффективно предотвращает использование расширений MySQLi или PDO. –

+0

Почему это предотвращает эти расширения? Для меня все зависает, может быть, из-за MySQLi? – Patrick

+0

По-видимому, эта функция возвращает длину в байтах, а не в символы ([ссылка] (http://bugs.php.net/bug.php?id=51189&edit=1)). В моем случае charset устанавливается как utf8, а поле varchar длиной 10 возвращается функцией «mysql_field_len» как 30 байт. – Ricardo

2

Вы можете использовать mysql_field_len для одного столбца или использовать SHOW COLUMNS FROM table запрос в MySQL, чтобы получить информацию обо всех столбцов сразу.

2

Просто будьте осторожны при использовании mysql_field_len для чтения столбцов, которые не являются целыми или строковыми. Например, decimal (6,4) вернет 10 из mysql_field_len.

Возможно, вы захотите использовать SHOW COLUMNS и проанализировать данные, если вам нужна вся информация о столбцах.

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