我正在尝试使用以下查询将值插入到mysql数据库中:
INSERT INTO TestTable (SearchTerm, SearchResult)
VALUES (?, ?), ("TestTerm", "TestResult");
我收到错误消息“第1行”附近有错误消息?,?)(“TestTerm”,“TestResult”)。
有人会指出我的错误吗?
答案 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");
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库,可以让你这样做。你用的是哪种语言?