【问题标题】:SQL syntax error Maria DB server Mysqli_querySQL 语法错误 Maria DB 服务器 Mysqli_query
【发布时间】:2018-08-31 02:40:31
【问题描述】:

我有这个 SQL:

$sql = "INSERT INTO orders (ID, Order_ID, Status, FName, LName, Email, 
Phone)VALUES ($UID, $orderID, 'Pending', '$fname', '$lname', '$email', 
'$phone');
INSERT INTO orders_inventory (Order_invID, Item_ID, Order_ID, Quantity) 
VALUES 
(NULL, $item_ID, $orderID, 1);";

我是这样连接的:

if(mysqli_query($db, $sql)){
   echo "three";
}

我在$sql 上做了回声,这就是我得到的:

INSERT INTO orders (ID, Order_ID, Status, FName, LName, Email, Phone) 
VALUES (92, 625015841, 'Pending', '1', '1', '1@1', '1'); 
INSERT INTO orders_inventory (Order_invID, Item_ID, Order_ID, Quantity) 
VALUES (NULL, 1, 625015841, 1);

当我手动将 SQL 粘贴到数据库时,它可以工作,但是当我使用网站 PHP 时,数据库崩溃了。 $DB是用来连接数据库的,因为我测试过,而且我整个网站都在使用它。

然后我使用mysqli_error(db) 进行了错误检查,我得到了这个错误:

“您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本相对应的手册,了解在 'INSERT INTO orders_inventory (Order_invID, Item_ID, Order_ID, Quantity) VALUES (' at line 2" 附近使用的正确语法”

非常感谢您的帮助,因为我非常卡住并且不知道如何解决这个问题或解决这个问题

【问题讨论】:

  • 对不起,当我使用网站 php 时数据库没有崩溃,php 代码只是没有达到 echo "three"
  • 尝试将两条语句一一执行
  • 尝试删除末尾的分号。分号不是 SQL 的一部分,一些数据库驱动程序不喜欢它。
  • 等等...这是两个语句!分别运行它们。
  • 命令行和 GUI 工具通常支持多语句,而 PHP API 不支持(默认情况下)。

标签: php sql database mysqli


【解决方案1】:

您正试图同时运行两个查询,mysqli_query 不会这样做。但是,您可以改用mysqli_multi_query

if(mysqli_multi_query($db, $sql)){
    echo "three";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-16
    • 2014-12-03
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    相关资源
    最近更新 更多