2013-06-29 34 views
-3

我嘗試使用下面的查詢將值插入MySQL數據庫:「近」,)(?‘如何在MySQL數據庫中插入新行?

INSERT INTO TestTable (SearchTerm, SearchResult) 
VALUES (?, ?), ("TestTerm", "TestResult"); 

我得到的錯誤信息有錯誤testTerm中’,‘的TestResult’ )'在第1行「。

有人會介意指出我的錯誤嗎?

+2

這是個小問題;查看文檔 – TMS

+1

http://dev.mysql.com/doc/refman/5.6/en/insert.html – Cocowalla

回答

2

?與框架如PDO和mysqli一起使用。一個正常的插入看起來像這樣

INSERT INTO TestTable (SearchTerm, SearchResult) 
VALUES ('TestTerm', 'TestResult'); 

INSERT INTO TestTable (SearchTerm, SearchResult) 
SELECT 'TestTerm', 'TestResult'; 
1

腳本直接:

INSERT INTO TestTable (SearchTerm, SearchResult) 
VALUES ("TestTerm", "TestResult"); 

隨着prepared statements

INSERT INTO TestTable (SearchTerm, SearchResult) VALUES (?, ?); 
0

它看起來像你正在嘗試使用一個perpared statement。這個想法是,問號代表可能包含查詢中斷字符(即分號和引號)的值。

如果您正在使用庫,通常需要使用兩個步驟才能完成此操作。例如,在java中:

PreparedStatement ps = new PreparedStatement("INSERT INTO TestTable (SearchTerm, SearchResult) VALUES (?, ?)"); 
ps.execute("TestTerm", "TestResult"); 
ps.execute("Escaped;Term", "TestResult"); // the semicolon will be escaped for you 

大多數每種語言都有通用的SQL庫,可以讓您這樣做。你在用什麼語言?