2013-01-03 44 views
0

我想第一次創建一個簡單的存儲過程。我已經找到了網絡並找到了幾個教程,但是當我嘗試創建一個INSERT過程時仍然遇到一些錯誤?插入存儲過程和PHP?

我想這一點:

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語法;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行的'my_insert(IN fname VARCHAR(50),IN lname VARCHAR(50))BEGIN SET @ fname = fn'處使用正確的語法

Hoping求救,在此先感謝:-)

+0

你在程序結束時是否忘記了關閉'//'分隔符,或者當你複製+將代碼粘貼到問題中時,你是否錯過了它? – SDC

回答

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 // 
+0

工程就像一個魅力,雖然我發現我的錯誤。在我原來的腳本中,我使用插入(而不是my_insert(。這是我得到這個錯誤,但謝謝,但;-) – Mansa