我尝试使用mysql_real_escape_string
从html表单输入电话号码到我的MySQL数据库。该号码为0123456789,但在我的数据库中写为23456789。有谁知道如何将这个零与我的数据库中的其他数字一起插入,或者如果有任何方法将表单值分解为字符然后将它们逐个输入到我的MySQL数据库中?
这是我的代码,它没有输入零:
<?php
$Phone = mysql_real_escape_string($_POST['phone']);
mysql_query("INSERT INTO `user` (`phone`) VALUES ('{$Phone}')");
?>
答案 0 :(得分:5)
这与逃避无关。如果要保持前导零,则需要将值存储为字符串,而不是整数。
答案 1 :(得分:0)
您应该将数据类型更改为varchar(10),如果您希望稍后将其作为数字进行处理,只需从字符串中解析它。数据库中不存在数字01xxx。
答案 2 :(得分:-3)
PHP是松散输入的。假设phone字段存储为VARCHAR / CHAR而不是numeric数据类型,则转义字符串正在执行它应该执行的操作。 PHP会将$ _POST变量中的数据看作一个整数,并在将其传递给mysql_real_escape_string()函数之前截断前面的0。如果将参数修改为( '' . $_POST['phone'] )
,它将转换为字符串并按预期工作。
<?php
$phone = mysql_real_escape_string( '' . $_POST['phone'] );