2011-04-19 162 views
0

我有一個html編輯器,我試圖插入它生成的html到數據庫中,然後在另一個頁面中檢索它是SQL表。 我正在使用一個帶有asp 3.5的文本字段的表格。下面是代碼:如何將編輯器中的html代碼插入到MySQL數據庫中?

MySqlConnection con = new MySqlConnection(@"Connection String ");//I've tested the connection string and its working fine 

MySqlCommand cmd = new MySqlCommand("INSERT INTO ins (tes) VALUES ('" + Editor1.Content + "')", con); 

con.Open(); 
cmd.ExecuteNonQuery(); 
con.Close(); 

這是我的錯誤:

您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以找到在'font-size:18pt;行高:115%;無論在線1

這是怎麼做到的?提前致謝。

+0

你能更準確,並指出哪裏出了問題?究竟 – Bruno 2011-04-19 10:32:23

回答

0

而你打開自己的SQL注入很多。來自用戶的數據應該在數據庫結束之前進行檢查和消毒。

此外,使用ASP.NET,您需要從回發中刪除任何HTML標記,因爲框架檢查來自瀏覽器的可能的HTML注入。

刪除標記(或者被什麼東西取代<&lt;)和服務器轉換回後,您可以使用類似:

MySqlCommand cmd = new MySqlCommand("INSERT INTO ins (tes) VALUES ('" + Editor1.Content.Replace("'", "''") + "')", con); 
con.Open(); 
cmd.ExecuteNonQuery(); 
con.Close(); 

雖然你應該做參數化查詢。

+0

這個作品十分感謝 – Wahtever 2011-04-19 11:30:54

2

我認爲你應該使用參數化查詢而不是信任用戶數據entry.please什麼是tes類型,並且你能澄清什麼是錯誤或異常?

+0

你能解釋更多請和tes是一個文本 – Wahtever 2011-04-19 10:36:47

+1

我的意思是參數化查詢保證沒有SQL注入,並沒有特殊字符的問題。 http://weblogs.asp.net/cumpsd/archive/2004/04/05/107456.aspx http://en.wikipedia.org/wiki/SQL_injection – 2011-04-19 10:49:42

+1

不知道它,謝謝你這是非常樂於助人 – Wahtever 2011-04-19 22:51:00

0

像這樣的東西可能會奏效:

MySqlCommand cmd = new MySqlCommand("INSERT INTO ins (tes) VALUES (@text)", con); 

cmd.Parameters.Add("@text", SqlDbType.Text); 
cmd.Parameters["@text"].Value = txtTextField.Text; 

con.Open(); 
cmd.ExecuteNonQuery(); 
con.Close(); 
+0

得到這個錯誤**輸入字符串的不正確的格式** – Wahtever 2011-04-19 11:02:40

+0

嘗試'SqlDbType.Text' – 2011-04-19 11:33:48

+0

此代碼爲SQL Server – 2011-04-19 11:40:36

相關問題