Вы должны использовать переменные внутри вашего подготовленного оператора.
Вам придется структурировать подготовленный оператор так, чтобы он давал вам по одной строке за раз, например:
SET @sql='SELECT col1, col2 FROM test WHERE id=3 INTO @v1, @v2';
PREPARE stmt FROM @sql;
EXECUTE stmt;
После выполнения у вас будут значения col1
и col2
в переменных @v1
и @v2
Для обработки нескольких строк используйте подготовленный оператор в цикле:
SET @sql='SELECT col1, col2 FROM test WHERE id=? INTO @v1, @v2';
PREPARE stmt FROM @sql;
SET @idx = 1;
REPEAT
EXECUTE stmt USING @idx;
SET @idx = @idx + 1;
UNTIL @idx > 6 END REPEAT;