プロシージャ (phpMyAdmin ではルーチンと呼ばれる) を作成しようとしていますが、現在、次のクエリがあります。
BEGIN
INSERT INTO `users` (`username`, `password`, `email`, `user_role_id`,` date_registered`)
VALUES (_username, _password, _email, (SELECT `ID` FROM `roles` WHERE `role_name` = _role) , _date);
END;
しかし、これは機能しません。変数を role_ID に宣言しようとしましたが、これも機能しませんでした。誰かがこれを修正するのを手伝ってくれますか?
ノート
表示されるパラメーター (アンダースコア ( ) で始まる_
) はすべて、phpMyAdmin ルーチン クリエーターで使用されるINパラメーターです。
編集
私が試した他のコードはこれです:
BEGIN
DECLARE role_id AS/*=*/ (SELECT `ID` FROM `roles` WHERE `role_name` = _role); /* tried both AS and = */
INSERT INTO `users` (`username`, `password`, `email`, `user_role_id`, `date_registered`)
VALUES (_username, _password, _email, role_id, _date);
END;
また、 の小さなエラーに気づき、DECLARE
上記のコードを次のように変更しました。
BEGIN
DECLARE @role_id ;
SET @role_id = (SELECT `ID` FROM `roles` WHERE `role_name` = _role);
INSERT INTO `users` (`username`, `password`, `email`, `user_role_id`, `date_registered`)
VALUES (_username, _password, _email, @role_id, _date);
END;
しかし、まだ運がありません