方案: 我在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中不是这样。最好使用操作系统的命令行。
答案 0 :(得分:1)
这与Sequel Pro有关,我猜。如果您首先同时运行prepare
和execute
行,它将起作用并显示一些输出,至少它是为我做的,然后分别运行deallocate
。我也从命令行尝试过它也很好。