-4

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

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

我收到错误消息,指出在第 1 行有错误“靠近'?,?)(“TestTerm”,“TestResult”)'。

有人介意指出我的错误吗?

4

3 回答 3

2

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

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

或者

INSERT INTO TestTable (SearchTerm, SearchResult)
SELECT 'TestTerm', 'TestResult';
于 2013-06-29T17:31:46.533 回答
1

脚本直接:

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

使用准备好的语句

INSERT INTO TestTable (SearchTerm, SearchResult) VALUES (?, ?);
于 2013-06-29T17:37:06.540 回答
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 库,允许您执行此操作。您使用什么语言?

于 2013-06-29T17:37:37.743 回答