[英]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.