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

时间:2018-05-04 10:06:07

标签: sql prepared-statement mariadb execute sequelpro

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

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

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

它执行时没有错误,但它没有显示单行。

我在这里缺少什么?

如果您在询问,为什么我会为这样一个简单的查询使用prepare语句:它只是用于查找错误。对于变量等,最终查询会更复杂。

提前致谢!

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

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

正确的答案

Joakim Danielson有正确的猜测。

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

这适用于Sequel Pro。 但是我完全建议不要使用Sequel Pros命令行。其他错误一个接一个地发生。在mysql CLI中不是这样。最好使用操作系统的命令行。

1 个答案:

答案 0 :(得分:1)

这与Sequel Pro有关,我猜。如果您首先同时运行prepareexecute行,它将起作用并显示一些输出,至少它是为我做的,然后分别运行deallocate。我也从命令行尝试过它也很好。