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