数据库中插入的PHP空白值

数据库中插入的PHP空白值,php,Php,我正在使用PHP和Mysql 在这里,我用简单的表格插入姓名、电子邮件、电话号码 我已经验证了所有数据:(提交后的PHP代码…) 最后,使用下面的查询插入数据 if(count($error)==0) { $error= ""; And the query is insert into mytab ('Name','Email','Phone') Values (mysql_escape_string($_POST['Name']),mysql_escape_string($_

我正在使用PHP和Mysql

在这里,我用简单的表格插入姓名、电子邮件、电话号码

我已经验证了所有数据:(提交后的PHP代码…)

最后,使用下面的查询插入数据

if(count($error)==0) {
  $error= "";   
  And the query is
  insert into mytab ('Name','Email','Phone') Values (mysql_escape_string($_POST['Name']),mysql_escape_string($_POST['Email']),mysql_escape_string($_POST['Phone']));
  redircet to success.. 
} 
它的工作很好,但有时我会得到插入$error日志,如下所示

错误日志:

 Time File name:myfile.php Insert $error: insert into mytab ('Name','Email','Phone') Values('','','');#~#

我使用db包装类(使用mysql_$error())编写的日志。

理想情况下,您应该从代码的其余部分抽象数据库访问。您的问题可能与mysql\u escape\u string()函数有关。您应该在sql查询之前进行验证,检查该值是否有效,然后才将该值传递给要执行的查询


此外,如果问题不一致,您可以执行压力测试并记录所有要插入的值和所有返回消息,以查看是什么类型的值导致了错误。

在代码的这一部分中

if(isset($_POST['Email']) && $_POST['Name'') {
    $error[] = "Please enter the Name";
}

if(isset($_POST['Phone']) && $_POST['Name'') {
    $error[] = "Please enter the Name";
}
有严重的语法错误。也许只有在这里。 另外,您的所有条件都在评估中,在关于名称的第二句话中

我建议以这种方式进行验证-

if (isset($_POST['Email']) && strlen($_POST['Email']))
    ...

您的验证应该如下所示

if(!isset($_POST['Name']) || $_POST['Name'] =='')
 $error[] = "Please enter the Name";
}

那么,在插入之前,您是否检查了
$error
?能否修复第一段代码中的所有印刷错误(我希望它们是印刷错误)?因为如果
$\u POST['Name']
不是空的话,您似乎会添加一个错误…该副本是从原始代码粘贴的吗?因为在您的验证中,您只检查
$\u POST['Name']!='适用于所有字段-无论如何这没有多大意义(应该是==)。
if(!isset($_POST['Name']) || $_POST['Name'] =='')
 $error[] = "Please enter the Name";
}