如何在MySQL数据库中插入新行?

时间:2013-06-29 17:30:33

标签: mysql sql

我正在尝试使用以下查询将值插入到mysql数据库中:

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

我收到错误消息“第1行”附近有错误消息?,?)(“TestTerm”,“TestResult”)。

有人会指出我的错误吗?

3 个答案:

答案 0 :(得分:2)

?与PDO和mysqli等框架一起使用。正常插入看起来像这样

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

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

答案 1 :(得分:1)

脚本直接:

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

使用prepared statements

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

答案 2 :(得分: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库,可以让你这样做。你用的是哪种语言?