我对查询有疑问。我不知道为什么它不起作用, 它始终显示,存在错误,并且不会将数据插入表中,尽管它是从表单中收集数据。 没有错误或警告通知,但它从if条件中选择else选项,并且不会将数据插入表中,不知道原因。
<?php
$con=mysqli_connect('localhost','root','','flentox');
if(mysqli_connect_error($con))
{
echo "there is an error in connection";
}
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$area=$_POST['select'];
$address=$_POST['address'];
$eaddress=$_POST['eaddress'];
$query= mysqli_query($con, "INSERT INTO order(Fname,Lname,Email,Phone,Area,Address,Eaddress) VALUES(`$fname`,`$lname`,`$email`,`$phone`,`$area`,`$address`,`$eaddress`)");
if ($query) {
echo "order confirm";
}
else {
echo "There is an error";
}
?>
答案 0 :(得分:0)
您的查询不正确,您不需要在VALUES
中使用(``)。不要忘记检查您的值是否为空。
因此,如果没有来自$_POST
的数据,您的查询也将崩溃。
也不要忘记SQL注入。建议不要在查询中立即插入$ _POST或$ _GET数据。使用Prepared Statements。
试试这个。
$fname = (empty($_POST['fname']) ? 'default value' : $_POST['fname']);
.......... (for other params too).
"INSERT INTO order (`Fname`,`Lname`,`Email`,`Phone`,`Area`,`Address`,`Eaddress`)
VALUES('".$fname."','".$lname."','".$email."','".$phone."','".$area."','".$address."','".$eaddress."')";
同样为了显示您的错误,请在php文件的最顶层运行此代码 -
error_reporting(1);