0

簡単なストアドプロシージャを初めて作成しようとしています。ネットを偵察していくつかのチュートリアルを見つけましたが、INSERTプロシージャを作成しようとすると、エラーが発生し続けますか?

私はこれを試しています:

DELIMITER // 
CREATE PROCEDURE my_insert(IN fname VARCHAR(50),IN lname VARCHAR(50))

BEGIN

SET @fname=fname; 
SET @lname=lname;

PREPARE STMT FROM 
"INSERT INTO users(fname,lname) VALUES (?,?)";

EXECUTE STMT USING @fname,@lname; 

END

このエラーが発生します: #1064-SQL構文にエラーがあります。1行目の'my_insert(IN fname VARCHAR(50)、IN lname VARCHAR(50))BEGIN SET @ fname = fn'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

事前に助けと感謝を願っています:-)

4

1 に答える 1

1

'の代わりに"を使用しました。これがクエリのエラーです。正しいクエリを以下に示します。

DELIMITER // 
CREATE PROCEDURE my_insert(IN fname VARCHAR(50),IN lname VARCHAR(50))

BEGIN

SET @fname=fname; 
SET @lname=lname;

PREPARE STMT FROM 
'INSERT INTO users(fname,lname) VALUES (?,?)';

EXECUTE STMT USING @fname,@lname; 

END //

または、単に使用することができます

DELIMITER //
CREATE PROCEDURE my_insert(IN fname VARCHAR(50),IN lname VARCHAR(50))

BEGIN
INSERT INTO users(`fname`,`lname`) VALUES (fname,lname);


END //
于 2013-01-03T11:05:00.110 に答える