Php `mysql\u real\u escape\u string()`返回空的mysql字段

Php `mysql\u real\u escape\u string()`返回空的mysql字段,php,html,mysql,Php,Html,Mysql,我有一个HTML联系人表单,允许用户在消息输入字段中编写任何他想要的内容。此表单使用AJAX发布,并在下面的PHP中处理 我的问题是MySql表中有一个空行 我只是想知道为什么$message=$\u POST['message']返回正确的值返回空字符串 我在这里错过了什么?? //posted data $firstName = mysql_real_escape_string($_POST['firstName']); $lastName = mysql_real_

我有一个HTML联系人表单,允许用户在
消息
输入字段中编写任何他想要的内容。此表单使用AJAX发布,并在下面的PHP中处理

我的问题是MySql表中有一个空行

我只是想知道为什么
$message=$\u POST['message']$message=mysql\u real\u escape\u字符串($\u POST['message'])时,code>返回正确的值返回空字符串

我在这里错过了什么??

  //posted data   
  $firstName  = mysql_real_escape_string($_POST['firstName']);
  $lastName   = mysql_real_escape_string($_POST['lastName']);
  $name       = $firstName. ' ' .$lastName ;
  $email      = mysql_real_escape_string($_POST['email']);
  $phone      = mysql_real_escape_string($_POST['phone']);
  $subject    = mysql_real_escape_string($_POST['subject']);
  $hear       = mysql_real_escape_string($_POST['hear']);
  $message    = mysql_real_escape_string($_POST['message']);


  $db_server = mysql_connect($db_hostname, $db_username, $db_password)


  // Check if is Duplicates
  $query_usercheck = " select * from `test` where Name='$name' and Email='$email' and Phone='$phone' and Subject='$subject' and Message='$message' "; //matching all fields
  $usercheck = mysql_query($query_usercheck) or die(mysql_error());
  $row_usercheck = mysql_fetch_assoc($usercheck);
  $totalRows_usercheck = mysql_num_rows($usercheck);

  if ( $totalRows_usercheck > 0 ) {
        $duplicate = 'Yes';
  } else {
        $duplicate = 'No';
        //adding application data to MySql database
        $add = mysql_query("INSERT INTO `test` (`Date`, `Day`, `Time`, `Name`, `Email`, `Phone`, `Subject`, `From`, `Message`)
        VALUES ('$date','$day','$time','$name','$email','$phone','$subject','$hear','$message')");
  }

// close mysql
mysql_close();

mysql\u real\u escape\u string
需要一个活动的数据库连接来完成它的工作。您尚未在调用数据库时建立连接。

问题是,您在执行mysql\u real\u escape\u string
之后才连接到数据库。在转义变量之前,请将连接移动到数据库


更好的是,去掉不推荐的
mysql.*
函数(甚至在PHP7中都没有了)!使用mysqli或更好:将准备好的语句作为偶数使用。

停止使用不推荐使用的和从PHP7起删除的mysql函数。迁移到PDO并开始使用准备好的语句。它可能需要一个连接,它可能会发生并将您的连接放在第一位。编辑:是的,我说过;-)当我使用
$message=$\u POST['message']
时,一切都很顺利,MySql表中的所有字符串都已填好。请。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO。