Я пытаюсь выполнить следующий подготовленный оператор:
PREPARE stmt FROM 'SELECT * FROM Inventory I WHERE I.ParentId = ?';
EXECUTE stmt USING @parentId;
DEALLOCATE PREPARE stmt;
Когда я выполняю этот оператор, он возвращает заголовки столбцов без строк.Он должен вернуть 6 строк.
Если я выполню этот же оператор как обычный оператор SQL без оператора PREPARE и EXECUTE, я получу результаты, например,
SELECT * FROM Inventory I WHERE I.ParentId = parentId;
Результаты будут возвращены.Что я делаю неправильно?Есть ли какое-либо приведение, которое делает мой оператор недействительным?
Обновление, parentId передается в качестве параметра, например,
CREATE DEFINER=`george`@`%` PROCEDURE `ListInventoryByParentId`(IN parentId INT)