我正在尝试使用一个名为create-order.php的页面将表单中的信息发布到Confirm-order.php中,该信息将把create-order.php中的内容插入表中并将数据输入到我的数据库。我相信我的SQL正确,但在phpmyadmin中查看表时却无法显示数据。
我已经尝试在Confirm-order.php中设置变量,并从上一个网页发布每个变量,然后创建一个$ sql变量,该变量将成为将数据插入表中的命令。我的问题是要使数据显示在phpmyadmin中
create-order.php看起来像这样:
<html>
<head>
<title>Create order</title>
</head>
<body>
<h3>Create order form</h3>
<form method="post" action="order-confirm.php">
<p>Store ID:<input type="text" name="store_id" /></p>
<p>Console ID:<input type="text" name="console_id" /></p>
<p>Quantity:<input type="text" name="quantity"</p>
<p><input type="submit" value="Create Order" /> <input type="reset" value = "Reset Order"/></p>
</form>
</body>
</html>
order-confirm.php看起来像这样:
//session_start() has to be called the very first line where a session is used
session_start();
include 'db.php';
$store_id = $_POST['store_id'];
$console_id = $_POST['console_id'];
$quantity = $_POST['quantity'];
$sql = "INSERT INTO orders(Stores_StoreID, Consoles_idConsoles, order) VALUE ($store_id, $console_id, $quantity)";
$result = mysqli_query($conn, $sql);
?>
我希望将数据插入表中,但是不会插入。
答案 0 :(得分:2)
order
是MySQL reserved keyword。
因此,使用order
作为列将在MySQL中引起语法错误。您有两种解决方案:
1)在order
上加上反引号。
$sql = "INSERT INTO orders(Stores_StoreID, Consoles_idConsoles, `order`) VALUE ($store_id, $console_id, $quantity)";
2)订购前的前缀表名称,例如orders.order
$sql = "INSERT INTO orders(Stores_StoreID, Consoles_idConsoles, orders.order) VALUE ($store_id, $console_id, $quantity)";