1

我正在尝试将 html 表单中的电话号码输入到我的 MySQL 数据库中mysql_real_escape_string。号码是 0123456789,但在我的数据库中写为 23456789。有谁知道如何将该零与我的数据库中的其他数字一起插入,或者是否有任何方法将表单值分解为字符然后将它们一一输入到我的 MySQL 数据库中?

这是我不输入零的代码:

<?php
$Phone = mysql_real_escape_string($_POST['phone']);
mysql_query("INSERT INTO `user` (`phone`) VALUES ('{$Phone}')");
?>
4

3 回答 3

5

这和逃跑无关。如果要保留前导零,则需要将值存储为字符串,而不是整数。

于 2013-03-12T15:06:53.563 回答
0

您应该将数据类型更改为 varchar(10),如果您想稍后将其作为数字处理,只需从字符串中解析它。数据库中不存在数字 01xxx。

于 2013-03-12T15:10:46.127 回答
-3

PHP 是松散类型的。假设电话字段被存储为 VARCHAR / CHAR 而不是数字数据类型,则转义字符串正在做它应该做的事情。PHP 会将 $_POST 变量中的数据视为整数,并在将其传递给 mysql_real_escape_string() 函数之前截断前面的 0。如果将参数修改为( '' . $_POST['phone'] ),它将转换为字符串并按预期工作。

<?php 
    $phone = mysql_real_escape_string( '' . $_POST['phone'] );
于 2013-03-12T15:12:08.207 回答