簡體   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