Почтовый индекс пропускает ведущий 0 при получении из таблиц mySQL - PullRequest
1 голос
/ 11 мая 2011

Я храню 5-значные почтовые индексы в таблицах mySQL как CHAR (5).Однако, когда почтовый индекс с ведущими нулями (т. Е. 02138) извлекается из таблиц, он становится 2138. Поскольку он хранится в таблицах как 02138 (проверено с помощью phpmyadmin), это связано с тем, что PHP удаляет ведущие 0?Как я могу убедиться, что сохранил лидирующий 0?

Я использую довольно длинную строку запроса SQL, используя activerecords в codeigniter.

foreach($q as $row){
        /// bunch of code that adds more elements to the $row array

        $data['rows'][] = $row;
    }

Ответы [ 4 ]

4 голосов
/ 11 мая 2011
str_pad($zip, 5, 0, STR_PAD_LEFT);
2 голосов
/ 11 мая 2011

Что вам нужно, так это MySQL ZEROFILL.Укажите столбец как нулевое заполнение.

0 голосов
/ 11 мая 2011

В качестве быстрого решения см. Версию @tandu.Но здесь вы должны найти корень проблемы.Что происходит, ясно - где-то PHP конвертирует строку «012345» в int 12345. Так что теперь вы должны как-то найти, кто и когда это делает.var_dump значений и посмотрите, являются ли они строковыми или целыми.

Может быть, где-то в вашей структуре вы указываете тип столбца как числовой, но он на самом деле символ в вашей БД.

0 голосов
/ 11 мая 2011

отображать его как текст, а не как число

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...