'PDOException'语法错误或访问冲突:1064您的SQL语法中有错误;检查

时间:2018-04-14 09:30:05

标签: php mysql pdo

尝试将订单详情提交到我的数据库时,我一直收到以下错误:

  

致命错误:带有消息'SQLSTATE [42000]的未捕获异常'PDOException':语法错误或访问冲突:1064 SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第111行的/home/ubuntu/workspace/handlers/checkout-handler.php附近使用正确的语法PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在第1行的'order(order_details,order_address,cust_id,cust_name,delivery_type,paid)'附近使用正确的语法。

我无法弄清楚它有什么问题,所有变量都正确地发布到页面上。

$query1 = "INSERT INTO order (order_details, order_address, cust_id, cust_name, delivery_type, paid) VALUES(:details,:address,:d,:name,:delivery,:paid);";                                         
$sql=$conn->prepare($query1);
$sql->bindParam(':details', $details);
$sql->bindParam(':address', $address);
$sql->bindParam(':name', $name);
$sql->bindParam(':delivery', $delivery_type);
$sql->bindParam(':paid', $paid);
$sql->bindParam(':d', $d);
$sql->execute();

1 个答案:

答案 0 :(得分:1)

order是保留关键字。您应该在其周围添加反引号`以使用它:

$query1 = "INSERT INTO `order` (order_details, order_address, cust_id, cust_name, delivery_type, paid) 
           VALUES(:details,:address,:d,:name,:delivery,:paid);";                                         
$sql = $conn->prepare($query1);