如何检查是否输入了值,如果没有输入,请不要将其插入到db中?

时间:2010-12-08 19:28:24

标签: php mysql

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";
}
?>

我正在尝试检查该值是否已设置,以及是否在没有插入数据库的情况下抛出错误。

帮助?

2 个答案:

答案 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