PHP空白值插入数据库中

时间:2011-09-02 13:43:21

标签: php

我正在使用PHP和Mysql

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

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

$error = array(); 

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

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

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

最后使用以下查询插入数据..

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.. 
} 

它的工作正常,但有一段时间我正在设置插入$错误日志,如下所示..

错误日志:

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

使用我的db包装器类(使用mysql_ $ error())

编写日志

3 个答案:

答案 0 :(得分:0)

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

此外,如果问题不一致,您可以进行压力测试并记录您尝试插入的所有值以及所有返回消息,以查看哪种值导致错误。

答案 1 :(得分:0)

在代码的这一部分

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']))
    ...

答案 2 :(得分:0)

您的验证应该是

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