繁体   English   中英

准备好的语句返回零结果

[英]Prepared statement returning zero results

我正在尝试执行以下准备好的语句:

PREPARE stmt FROM 'SELECT * FROM Inventory I WHERE I.ParentId = ?';
EXECUTE stmt USING @parentId;

DEALLOCATE PREPARE stmt;

当我执行此语句时,它返回没有行的列标题。 它应该返回 6 行。

如果我执行与没有 PREPARE 和 EXECUTE 语句的普通 SQL 语句相同的语句,我会得到结果,例如

SELECT * FROM Inventory I WHERE I.ParentId = parentId;

返回结果。 我究竟做错了什么? 是否有某种类型的铸造使我的陈述无效?

更新,parentId作为参数传入,例如

CREATE DEFINER=`george`@`%` PROCEDURE `ListInventoryByParentId`(IN parentId INT)

用户变量 @parentId 和过程参数 parentID 是独立的。 在执行语句之前,您需要将用户变量设置为过程参数。

SET @parentID = parentId;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM