私は試した:
SET @user = 'foo@localhost';
SET @pass = 'bar';
SET @sql = 'CREATE USER ? IDENTIFIED BY ?';
PREPARE stmt FROM $sql;
エラーが発生します
ERROR 1064 (42000): 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 '? IDENTIFIED BY ?'
また、変数を定義する方法を複数試してみましたが、それでもうまくいきませんでした。
SET @user = "'foo'@'localhost'";
SET @sql = 'CREATE USER ? IDENTIFIED BY ?';
そしてさえ
SET @user = 'foo';
SET @host = 'localhost';
SET @sql = 'CREATE USER ?@? IDENTIFIED BY ?';
よく似た質問が2年以上前にすでに尋ねられましたが、まだ有用な答えはありません:( MySQLiプリペアドステートメントでユーザーを作成する