我正在使用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())
编写日志答案 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";
}