首页 > 解决方案 > MariaDB SQL 语法错误 - “在‘order(”附近使用正确的语法

问题描述

查询失败!您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“order(product_id,customer_name,total_bill,quantity)VALUES(1,'taha khan',5368,22)' 附近使用正确的语法

<?php 
    if ($_SERVER['REQUEST_METHOD'] == "POST") {   
        $product = $_POST['product_id'];
        $customer_name = $_POST['customer'];
        $qty = $_POST['qty'];
        $product_cost = $_POST['product_cost'];
        $total_bill = $product_cost * $qty;

        $result = "INSERT INTO order(product_id,customer_name,total_bill,quantity)VALUES($product,'$customer_name',$total_bill,$qty)";
        $query = query($result);

        confirmQuery($query);
    }
?>


标签: phpmysqli

解决方案


你不能命名你的表order并像那样使用它。那是一个保留关键字

话虽如此,如果您坚持这样做,您仍然可以使用该名称

INSERT INTO `order` (product_id...

反引号将允许它工作。我的建议是命名您的表orders,以避免查询冲突。


对我来说重要的是还要注意您的查询容易受到 SQL 注入攻击。您永远不应该将原始输入直接放入您的数据库中。没有什么能阻止我在customer字段中发布 SQL 查询的片段并窃取数据。

花点时间学习如何使用准备好的语句,这将是非常有益的:https ://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php


推荐阅读