使用变量的查询在 PHPMyAdmin 中有效,但在 PHP 脚本中无效

Posted

技术标签:

【中文标题】使用变量的查询在 PHPMyAdmin 中有效,但在 PHP 脚本中无效【英文标题】:A query that uses variables works in PHPMyAdmin, but not in a PHP script 【发布时间】:2014-10-17 06:15:49 【问题描述】:

当我在 phpMyAdmin 中使用 SQL 输入框时,以下查询返回预期结果,但是在 PHP mysqli 查询 ($sql->query()) 中出现错误。

SET @a = 5;
SET @b = (SELECT `b` FROM `t` WHERE `c`=@a);
SELECT @b;

我得到的错误是:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 'SET @b= (SELECT b FROM `t' 附近使用正确的语法

【问题讨论】:

php.net/mysqli_multi_query 【参考方案1】:

您正在执行 3 个查询而不是 1 个查询,因此您需要 multi_query() 而不是 query()

【讨论】:

multi_query 是否适用于单个查询?即我可以将 multi_query 用于 SELECT b` FROM t WHERE c='5'` @user3887706 Executes one or multiple queries which are concatenated by a semicolon. 是的,它确实有效。喜欢的手册页说Executes one or multiple queries which are concatenated by a semicolon.

以上是关于使用变量的查询在 PHPMyAdmin 中有效,但在 PHP 脚本中无效的主要内容,如果未能解决你的问题,请参考以下文章

查询适用于 phpMyAdmin,但不适用于 Java [重复]

SQL 查询在 phpMyAdmin 中有效,但在 Java 中无效

MySQL Query 在 PhpMyAdmin 中有效,但在 JAVA Eclipse 中无效

phpMyAdmin中的慢查询但Mysql慢查询日志文件中没有[关闭]

雄辩给出错误,但查询在 phpmyadmin 中执行良好

sql phpMyAdmin多变量查询格式 - 继续添加下一个连续数字(注意:变量字段不显示在phpMyAdmin中