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

时间:2013-08-08 07:34:34

标签: php mysql sql insert

确定。所以现在,我的插入代码行如下所示:

$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 (...)

但它也不会那样。

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

2 个答案:

答案 0 :(得分:0)

如果order_date是一个日期,则需要在两侧填充'字符串。

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

答案 1 :(得分:0)

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

如果你知道你要添加它们的值是什么:

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或echo你的$ sql变量,看看真正被查询的是什么。