这是我应该插入行的代码行:
$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格式插入日期。我很沮丧。我在网上到处检查。你能帮我吗?
答案 0 :(得分: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);
}
仅供参考,在不知道列的数据类型的情况下,我认为它们都是字符串。
答案 1 :(得分:0)
首先,您必须从插入查询中删除*
其次,如果要插入这样的值,请确保表中的列没有与此处插入的值相同(在这种情况下为6)
答案 2 :(得分:-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']."'
)");