Длина поля в phpMyAdmin

Весь конец рабочего дня был тупо потрачен на битву с несуществующим багом. Точнее баг был, но не мой :)

Писал я значит одну утилитку на Си: она должна собирать кое-какую информацию и записывать её в базу данных. Из этой базы “web-морда”, написанная на PHP, должна читать данные и представлять их в виде “красивых” отчётов.

Короче, решил я максимально упростить жизнь для PHP, и почти вся нагрузка легла на Сишную утилиту. Помимо всего прочего, эта утилита писала в одно из полей сериализованные данные — массив, который можно восстановить на PHP при помощи функции unserialize(). Некоторые поля с такими строками были относительно недлинными — массивы порядка ста элементов, а были и гиганты, перевалившие за четыре тысячи, но в любом случае, я посчитал, что для столбца с такими полями будет достаточно типа TEXT.

Компиллирую, запускаю, утилита отработала и вышла.

Открываю phpMyAdmin — ну не хотелось мне запускать mysql, а зря. Просматриваю содержимое таблицы — вроде бы всё записалось. Жму на полнотекстовый просмотр (чтобы посмотреть нормально ли записались мои сериализованные данные) и вижу, что короткие строки записались нормально, а длинные “обрезаны” на конце. Ну, думаю, мало здесь типа TEXT, поставлю-ка я MEDIUMTEXT. Поставил, очистил таблицу (хотя мог и не чистить — в неё данные добавляются методом REPLACE, а не методом INSERT, ну это так к слову…), перезапустил утилиту — результат тот же — строки “обрезаны”. “Бред какой-то”, — сказал я и изменил тип столбца на LONGTEXT. Результат тот же.

Долго грешил на свою утилиту, навставлял туда кучу printf’ов — выводил и то, что получалось в результате mysql_real_escape_string() и SQL-запрос, передававшийся в mysql_query — всё было верно, всё было правильно…

Это могло продолжаться, наверное, ещё долгое время, если бы я не решил просмотреть таблицу в консоли утилитой mysql. Не трудно представить мою злость на phpMyAdmin, да и на самого себя, когда я увидел, что всё в таблицу записалось правильно.

Надо будет поковыряться в исходниках phpMyAdmin…

0 комментариев к записи «Длина поля в phpMyAdmin»


  1. Нет комментариев

Оставить комментарий