-2

这是我应该插入行的代码行:

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

我的连接也不会抛出任何错误。此外,它之后的代码行肯定会执行。这是我第一次在 PHP 和 MySQL 中使用日期数据类型,但我以 yyyymmdd 格式插入日期。我很沮丧。我在网上到处查。你能帮我么?

4

3 回答 3

2

您查询的主要问题是*. INSERT这对于一个声明是无效的。

其次,为了避免 SQL 注入漏洞,您应该使用带有绑定参数的准备好的语句。您可能还应该使用某种形式的错误检查。例如

$stmt = $con->prepare('INSERT INTO `orders` VALUES (?, ?, ?, ?, ?, ?)');
if ($stmt === false) {
    throw new Exception($con->error);
}
$stmt->bind_param('ssssss', $user_index, $order_date, $_POST['item_number'],
        $_POST['price'], $_POST['tax'], $_POST['pay_method']);

if (!$stmt->execute()) {
    throw new Exception($stmt->error);
}

仅供参考,在不知道您的列的数据类型的情况下,我假设它们都是字符串。

于 2013-08-07T06:55:13.387 回答
0

首先,您必须从插入查询中删除 *

其次,如果您要插入这样的值,请确保表中的列数与您在此处插入的值数相同(在本例中为 6)

于 2013-08-07T07:33:05.610 回答
-5

您的查询有很多错误。查看文档以获取正确的语法

mysqli_query($con,"INSERT INTO table_name (field1,field2,field1) values ('value1','value2','value3')");

具体到您的问题

$query=mysqli_query($con,"INSERT INTO orders (your fields Here ) VALUES (
    '".$user_index."', '".$order_date."', '".$_POST['item_number']."',
    '".$_POST['price']."', '".$_POST['tax']."', '".$_POST['pay_method']."'
    )");
于 2013-08-07T06:37:26.163 回答