-1

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

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

但它也不是那样工作的。

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

4

2 回答 2

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']."')");
于 2013-08-08T07:38:45.987 回答
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 变量并查看真正被查询的内容。

于 2013-08-08T07:39:36.683 回答