有没有人知道这个查询中的问题是什么,每当我填写表格时,它会说出“问题!”的脚本。
if(isset($_POST['submit'])){
//getting the text data from the fields
$title = $_POST['title'];
$cat= $_POST['cat'];
$desc = $_POST['desc'];
$qty = $_POST['qty'];
$price = $_POST['price'];
$status = $_POST['status'];
//getting the image from the field
$image = $_FILES['image']['name'];
$image_tmp = $_FILES['image']['tmp_name'];
move_uploaded_file($image_tmp,"images/drinks/$image");
$insert_product = "insert into drinks (title,cat,image,desc,qty,price,status) values ('$title','$cat','$image','$desc','$qty','$price','$status')";
$insert_pro = mysqli_query($con, $insert_product);
if($insert_pro){
echo "<script>alert('Drink Has been inserted!')</script>";
echo "<script>window.open('index.php?viewdrink','_self')</script>";
}
else{
echo "<script>alert('Problem!')</script>";
}
}
如何改进此代码以使其正常工作。
答案 0 :(得分:2)
DESC
是一个MySQL保留字,如果你想继续使用该列的名字,它必须用刻度表包装。
$insert_product = "insert into drinks (title,cat,image,`desc`,qty,price,status)....";
在查询中使用了mysqli_error($con)
(在else{...}
中),它会发出语法错误信号。
您还可以打开SQL注入。使用准备好的声明。
如果仍然失败,请确保没有插入会导致注入的字符,并且所有数组都包含值。在任何情况下,您都应该转义插入数据库中的所有值。
使用PHP的错误报告: