0
我遇到一些奇怪的來到,我覺得是明目張膽的是一個錯誤,所以我猜,我做錯了什麼:我有如下表:MySQL存儲過程的參數逃離
CREATE TABLE BlurbTest
(
ID SERIAL NOT NULL
,Blurb TEXT NOT NULL
);
用下面的存儲過程:
DELIMITER $$
CREATE PROCEDURE spInsertBlurbTest
(
OUT ID INT
,IN BlurbParm TEXT
)
BEGIN
INSERT INTO BlurbTest(
Blurb
) VALUES (
BlurbParm
);
SET ID = LAST_INSERT_ID();
END$$
DELIMITER ;
和下面的C#代碼:
using (var conn = new MySqlConnection(Settings.ConnectionString))
{
conn.Open();
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "spInsertBlurbTest";
cmd.CommandType = CommandType.StoredProcedure;
MySqlCommandBuilder.DeriveParameters(cmd);
cmd.Parameters["@BlurbParm"].Value = "let's do it";
cmd.ExecuteNonQuery(); // Throws Exception
}
}
其被拋出以下消息異常。 {「您的SQL語法有錯誤,請檢查與您的MySQL服務器版本相對應的手冊,以便在第1行使用正確的語法」)「}
現在,我錯了,但這不完全是存儲過程和參數旨在解決的問題類型,以幫助防止注入攻擊?
或者我在這裏做錯了什麼?
這將是我:) – feihtthief 2009-10-23 05:04:53
這最終被固定在樹幹上的代碼。我期待它在6.2.1版本中。 – feihtthief 2009-11-12 20:08:27