-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を使用しようとしているようです。疑問符は、クエリを分割する文字 (つまり、セミコロンと引用符) を含む可能性のある値を表すという考えです。

ライブラリを使用している場合、通常、これを行うには 2 つの手順を使用する必要があります。たとえば、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 に答える