添加mysql_real_escape_string()会导致将空值存储到数据库中

时间:2011-06-17 10:26:27

标签: php mysql mysql-real-escape-string

$submit=$_POST['submit'];
$fullname=$_POST['fullname'];
$phone=preg_replace('/[^0-9]/', '', $_POST['phone']);
$phone =  (int) $phone;
$adress=$_POST['city']  . ' ' .  $_POST['district'] . ' ' . $_POST['adress'];
$friends=$_POST['friends'];
$school=$_POST['school'];
$info=$_POST['info'];
$dob = $_POST['year']."-". $_POST['month']."-".$_POST['day'];

最近我添加到了我的页面:

foreach ($_POST as $key => $value) { 
$_POST[$key] = mysql_real_escape_string($value);
}   

我希望在将mysql_real_escape_string()添加到我的页面之前清除所有$ _POST(http://prntscr.com/22uot)ID 20,之后是ID 22。我的页面将所有变量放到db表的字段中,但是当我想将mysql_real_escape_string()添加到变量时,它不会在字段中放入任何内容。我不知道该怎么办。

2 个答案:

答案 0 :(得分:6)

正如manual中明确指出的那样(这是您应该浏览的第一件事,如有疑问):

  

之前需要MySQL连接   使用mysql_real_escape_string()   否则出现E_WARNING等级错误   生成,返回FALSE。   如果未定义link_identifier,则   使用最后一个MySQL连接。

在使用此功能之前,请确保已连接到数据库。

$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);

答案 1 :(得分:3)

要使用此功能,您必须先在数据库中打开连接,例如:

mysql_connect(...);
$fullname=mysql_real_escape_string($_POST['fullname']);
etc ...