mysql 包含多个变量的准备语句

mysql prepared statements with multiple variables

使用一个变量不会给我一个错误。有两个变量,它给我一个语法错误。

set @a= '...';
set @b = '...';

PREPARE stm1 FROM 
    'SELECT *
    FROM ?
    WHERE username = ?';

EXECUTE stm1 USING @a, @b;
Error Code: 1064. You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near '?  WHERE username = ?' at line 2

其他问题没有帮助。

谢谢

您不能为 table 名称使用参数。您必须使用串联来替换 table.

的变量
PREPARE stm1 FROM CONCAT(
    'SELECT *
    FROM `', @a, '`
    WHERE username = ?');
EXECUTE stmt1 USING @b;