Готовые операторы обрезают 0 в начале числа в php? - PullRequest
1 голос
/ 05 мая 2011

Я вставляю несколько полей в базу данных. Одним из полей является поле номера телефона. Например, если вы начнете число с «01234», оно обрежет «0» в начале строки.

Я использую mysqli и подготовленные операторы для вставки строки в БД, и у меня есть другой запрос вставки, который не использует подготовленные операторы, где он не обрезает '0' в начале, что заставляет меня предположить, подготовленный оператор обрезает '0'.

Я также сделал поле для вставки в varchar, чтобы посмотреть, сработает ли это, но не повезло.

Есть ли у вас какие-либо идеи, почему он обрезает ноль в начале, когда я использую подготовленное утверждение? Как я могу обойти это?

Ответы [ 2 ]

3 голосов
/ 05 мая 2011

Если в какой-то момент вы определяете номер телефона как фактический номер (например, int, десятичное число, число с плавающей запятой и т. Д.), Он удалит все начальные нули.

По этой причине телефонные номера должны приниматься,переданы и хранятся в виде строк.Поскольку вы никогда не выполняете математику для номера телефона, это не должно создавать проблем.

Я предполагаю, что в подготовленном вами утверждении или другом шаге вы обозначаете его как номер.

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

Обязательно используйте правильные $types в mysqli_stmt :: bind_param .

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