php - mySQL 查询不适用于 PHP,但适用于 PHPMyAdmin

标签 php mysql phpmyadmin

当我从 PHP MyAdmin 运行 SQL 查询时,它会正确插入该行;当我从 PHP 运行它时,它没有。

我将为您提供每个文本;它们是相同的,但考虑到我可能遗漏了一些东西,我不想假设它们没有区别;

在 PHP 中:

$orderSend = "SET @typeSQL := (SELECT `typeID` FROM `ArbuckleType` WHERE `typeName` = 'A la Carte');

        SET @groupSQL:= (SELECT `groupID` FROM `ArbuckleGroup` WHERE (`groupName` = 'Nigiri' AND `typeID` = @typeSQL));

        SET @itemSQL:=(SELECT `itemID` FROM `ArbuckleItem` WHERE (`itemName` = 'Salmon' AND `groupID` = @groupSQL));

        INSERT INTO `ArbuckleOrderDetails` VALUES('', '$orderID', @typeSQL,@groupSQL, @itemSQL, '$quantity', '$spicy')";
mysql_query($orderSend);

现在在 PHP MyAdmin 中:

SET @type := (SELECT `typeID` FROM `ArbuckleType` WHERE `typeName` = 'A la Carte');# MySQL returned an empty result set (i.e. zero rows).  

        SET @group:= (SELECT `groupID` FROM `ArbuckleGroup` WHERE (`groupName` = 'Nigiri' AND `typeID` = @type));# MySQL returned an empty result set (i.e. zero rows).

        SET @item:=(SELECT `itemID` FROM `ArbuckleItem` WHERE (`itemName` = 'Salmon' AND `groupID` = @group));# MySQL returned an empty result set (i.e. zero rows).

INSERT INTO `ArbuckleOrderDetails` VALUES('', '$orderID', @type,@group, @item, '$quantity', '$spicy')

注意:我在没有 SET 调用的情况下运行了 PHP 查询(设置变量的 3 行)并且它有效;但我不知道这些行中哪里有错误的语法。还运行了 mysql_error 并指出存在语法错误 - 然后要求我查看手册。非常有帮助,mysql。

最佳答案

mysql_query() 不能一次执行多个查询。

两种解决方案:

  1. 使用多个 mysql_query 行
  2. 使用mysqli multi_query()

您的代码,重写为多个 mysql_query 行:

mysql_query("SET @typeSQL := (SELECT `typeID` FROM `ArbuckleType` WHERE `typeName` = 'A la Carte')");
mysql_query("SET @groupSQL:= (SELECT `groupID` FROM `ArbuckleGroup` WHERE (`groupName` = 'Nigiri' AND `typeID` = @typeSQL))");
mysql_query("SET @itemSQL:=(SELECT `itemID` FROM `ArbuckleItem` WHERE (`itemName` = 'Salmon' AND `groupID` = @groupSQL))");
mysql_query("INSERT INTO `ArbuckleOrderDetails` VALUES('', '$orderID', @typeSQL,@groupSQL, @itemSQL, '$quantity', '$spicy')");

关于php - mySQL 查询不适用于 PHP,但适用于 PHPMyAdmin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12313142/

相关文章:

php - 从其他3个Docker容器访问MySQL

php - MYSQL限制不一致

php - 如何在 php 中将 GET 变量添加到当前 url 的末尾?

mysql - phpMyAdmin 中的德国日期?

php - file_put_contents - 无法打开流 : Permission denied

java - 使用用户输入更新 MySQL 上的数据记录

MySQL 如何将 WHERE 子句应用于除一列之外的所有选定列?

MySQL如何得到想要的结果

php - 如果引擎是 MyISAM,表中没有外键

php - MySQL CSV 导入问题