Mysql prepare语句不返回任何内容。没有语法错误。为什么?

Mysql prepare语句不返回任何内容。没有语法错误。为什么?,sql,prepared-statement,mariadb,execute,sequelpro,Sql,Prepared Statement,Mariadb,Execute,Sequelpro,情景: 我在一家餐厅有一张桌子。它被称为“页面”。它只有三列和几个用于测试的条目 问题: 我尝试在SQL中创建一个漂亮的PREPARE语句。我没有让它工作,所以我最终得到了下面的“简单”代码 PREPARE stmt from 'SELECT * FROM `pages`;'; EXECUTE stmt; DEALLOCATE PREPARE stmt; 它执行时不会出错,但不会显示一行 我错过了什么 如果您想问,为什么我使用prepare语句来进行这样一个简单的查询:它只是为了查找错误。最终

情景: 我在一家餐厅有一张桌子。它被称为“页面”。它只有三列和几个用于测试的条目

问题: 我尝试在SQL中创建一个漂亮的PREPARE语句。我没有让它工作,所以我最终得到了下面的“简单”代码

PREPARE stmt from 'SELECT * FROM `pages`;';
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
它执行时不会出错,但不会显示一行

我错过了什么

如果您想问,为什么我使用prepare语句来进行这样一个简单的查询:它只是为了查找错误。最终的查询将更加复杂,包括变量等

提前谢谢

附言:可能是的两倍,但可能不是

其他信息 我在Sequel Pro中将代码作为直接SQL查询运行

正确答案

乔金·丹尼尔森的猜测是对的

prepare stmt from 'SELECT * FROM `pages`;'; execute stmt;
DEALLOCATE PREPARE stmt;
这在Sequel Pro中有效。
但是我完全建议不要使用Sequel Pros命令行。其他错误一个接一个地出现。在mysql CLI中并非如此。最好使用操作系统的命令行。

我想这与Sequel Pro有关。如果首先一起运行
prepare
execute
行,它将工作并显示一些输出,至少对我来说是这样,然后分别运行
deallocate
。我也尝试过使用命令行,在那里效果也很好。

prepare??或者如果您使用的是mariadb,为什么要使用mysql和sql标志?您是想直接从mariadb的命令行运行这些命令,还是使用PHP之类的编程语言?@scaisEdge谢谢,但这只是一个输入错误,不是在真正的代码中。@Dave我的目标是通过mysql连接器从节点应用程序运行这些命令,但为了测试,我直接在Sequel Pro中运行代码。标签……我可以把它去掉。Sequel Pro只是告诉我MySQL 5.5.5-10.2.14-MariaDB。谢谢@joakim danielson我会看看的!就这样!这让我发疯了。但它的工作原理和你描述的一样。