Mysql prepare 语句没有 return 任何东西。没有语法错误。为什么?

Mysql prepare statement does not return anything. No syntax error. Why?

场景: 我在 mariaDB 中有一个 table。它被称为“页面”。它只有三列和一些用于测试目的的条目。

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

PREPARE stmt from 'SELECT * FROM `pages`;';
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

它执行时确实没有错误,但它不显示一行。

我在这里错过了什么?

如果你要问,为什么这么简单的查询要用prepare语句:就是为了找错误。最终查询会因变量等而更加复杂

提前致谢!

P.S.: 可能是 Select * for mysql prepare statement not listing anything 的两倍,但也可能不是。

附加信息 我 运行 代码作为直接 SQL 在 Sequel 中查询 Pro.

正确答案

Joakim Danielson 猜对了。

prepare stmt from 'SELECT * FROM `pages`;'; execute stmt;
DEALLOCATE PREPARE stmt;

这适用于 Sequel Pro。 但是 我完全建议不要使用 Sequel Pros 命令行。其他BUG接连发生。在 mysql CLI 中不是这样。最好使用 OS' 命令行。

我猜这和Sequel Pro有关。如果你先 运行 prepareexecute 行在一起,它会工作并显示一些输出,至少它对我有用,然后 运行 deallocate分别地。我也从命令行尝试过,在那里也工作得很好。