Я использую mysqli_fetch_field_direct на MySQL, чтобы получить длину поля, используя:mysqli_fetch_field_direct неправильный результат
$tab_field = mysqli_fetch_field_direct($result_fields,$j);
$long = $tab_field->length;
После создания VARCHAR (100) под PhpMyAdmin, я вернулся 100 в моей длины VARCHAR, который был правильным.
Теперь я использую MariaDB и тот же вызов mysqli_fetch_field_direct для того же поля, дайте мне 300. Я согласен с тем, что, согласно кодировке, возможно, это «внутренний размер», но мне нужно знать количество символов, которое я могу положить, поэтому мне нужно вернуть «100». Я заметил, что PhpMyAdmin возвращает 100, когда показывает «структуру» таблицы, но, похоже, использует SHOW-запрос, а не fetch_field_direct.
Любая идея?
Ну, на самом деле, я решил использовать select * from information_schema.COLUMNS, где table_name = 'XXX'. Я получаю размер, который я хотел (100) в CHARACTER_MAXIMUM_LENGTH, и размер, который я получаю от mysqli_fetch_field_direct в CHARACTER_OCTET_LENGTH. С самого начала (MySQL) я использовал utf8. – Peter