PHP MySQL脚本不显示错误,但不会插入行(更多详细信息和不同的代码)


PHP MySQL script shows no error but won't insert row (more details and different code)

Ok. 所以现在,我的插入代码行如下所示:

$query=mysqli_query($con,"insert into orders values (".$user_index.",".$order_date.",".$_POST['item_number'].",".$_POST['price'].",".$_POST['tax'].",'".$_POST['pay_method']."')");

$order_date是一个日期。 $user_index$_POST['item_number']是 INT。 $_POST['price']$_POST['tax']是双打。 $_POST['pay_method']是一个枚举。 目前,我真的不能不在乎SQL注入。 我现在只想要一个工作页面。 我会在它在我的网站上线之前保护它。

无论我是否输入"die(mysqli_error($con((",我的虚拟服务器都会引发异常。 但是,在这种情况下,它肯定会到达插入语句之后的相同 if 语句中的代码。 然而,当我运行此代码时,一切看起来都很好,但数据库中没有任何变化。

我试过:

insert into orders (user_index,order_date,item_number,...) values (...)

但它也不是那样工作的。

最后,是的,我以前问过类似的问题。 但是由于我是这个网站的新手,不知道是否有办法编辑我的旧问题,并且认为这会更容易,因为我现在有更多细节,我可能会让和以前一样的人回答这个问题他们的问题和故障排除步骤回答;我只是继续发布了一个新问题。

你没有在字符串变量周围添加 '。

如果您知道将添加它们的值是什么,如下所示:

insert into orders values ('value1','value2' //etc 

您的代码:

"insert into orders values (".$user_index.".$value2." //etc 

相当于:

"insert into orders values (value1,value2 //etc

这是错误的,要解决此问题,请像这样添加' 标记:

$query=mysqli_query($con,"insert into orders values  ('".$user_index."','".$order_date."','".$_POST['item_number']."','".$_POST['price']."','".$_POST['tax']."','".$_POST['pay_method']."')");

为了将来参考,调试动态创建的 SQL 语句的一个好方法是将它们分配给一个名为 $sql 的变量,然后运行 mysqli_query($con,$sql(。这样,如果它不起作用,您可以var_dump或回显您的$sql变量,并查看真正被查询的内容。

如果order_date是一个日期,你需要用两边的'填充字符串。

$query=mysqli_query($con,"insert into orders values (".$user_index.",'".$order_date."',".$_POST['item_number'].",".$_POST['price'].",".$_POST['tax'].",'".$_POST['pay_method']."')");
相关文章: