Form1.php
<?php
if(isset(".$_POST[fname].", ".$_POST[lname].", ".$_POST[mail]."))
{$query = "INSERT INTO table1 (fname, lname, mail) VALUES ('".$_POST[fname]."', '".$_POST[lname]."', '".$_POST[mail]."')";
$result = mysql_query($query)
or die ("Query Failed: " . mysql_error());}
else{
echo "No Values To Insert";
}
?>
我正在尝试检查该值是否已设置,以及是否在没有插入数据库的情况下抛出错误。
帮助?
答案 0 :(得分:3)
尝试
if ( isset ($_POST['fname']{0}) and isset( $_POST['lname']{0}) and isset( $_POST['mail']{0}) ){
// Insert into db
}
else{
echo "Please fill all the feilds";
}
这里发生的事情是即使用户没有在fname feild中输入任何值,仍然会设置$ _POST ['fname']。因此,如果表单已提交,则isset($ _POST ['fname'])将始终返回true。
但是当你检查isset($ _POST ['fname'] {0})时,你确保输入了至少一个字符并且该字段不为空。你也可以使用is_empty,但这是更好的方法。
使用它的问题是在PHP版本6中将删除“{}”。因此,如果您计划将来升级服务器,那么这可能会导致一个小问题。但使用“[]”而不是“{}”将解决php版本6中的问题。
答案 1 :(得分:2)
对不起,我读了这个问题的标题并且误解了。你有什么代码应该用于捕获失败的插入(虽然我建议中断对mysql_error而不是或死(...)`的测试。但是,你可以根据值是否已经存在插入数据库使用this page as a reference