私はsqliteデータベースに入れる必要があるテキストがあります。私はsqliteがコメントとして扱うので、sqliteがテキストの二重否定を受け入れる方法を知らない。二重SQLiteデータベースを挿入
どうすればいいですか?
私はsqliteデータベースに入れる必要があるテキストがあります。私はsqliteがコメントとして扱うので、sqliteがテキストの二重否定を受け入れる方法を知らない。二重SQLiteデータベースを挿入
どうすればいいですか?
文字列を引用符で囲んでいますか?このよう :
insert into table1 ('Text -- with -- double minus')
EDIT:複数行の文字列の場合
、のようなものを試してください:あなたはSQLのINSERT文内のテキストを直接置くべきではありません
insert into table1 ('Text' + char(13) + char(10) + '-- with double minus')
。あなたが慎重でないならばit causes problems。
好ましい方法は、パラメータ化されたクエリを使用することです。そうすれば、エスケープ文字列に対処する必要はありません。
C APIでは、sqlite3_bind_*ファミリの関数を使用します。
Pythonのsqlite3モジュールでは、パラメータを別の引数としてexecute
に渡します。
>>> import sqlite3
>>> db = sqlite3.connect(':memory:')
>>> db.execute("CREATE TABLE Table1 (A TEXT, B TEXT)")
<sqlite3.Cursor object at 0xe2fa80>
>>> dbl_minus = 'Text -- with -- double minus'
>>> multiline = 'Text\nwith\nline\nbreaks'
>>> db.execute("INSERT INTO Table1 VALUES (?, ?)", (dbl_minus, multiline))
<sqlite3.Cursor object at 0xe2fb30>
>>> db.execute("SELECT * FROM Table1").fetchall()
[('Text -- with -- double minus', 'Text\nwith\nline\nbreaks')]
これは複数行のテキストで、行の1つに - 最初はあります。一度私はラインを削除する - それは正常に動作します。 –
ダブルマイナスのないあなたのために働くのですか? SQL問合せで複数行の文字列を使用できるかどうかはわかりませんでした。とにかく答えを編集しましたが、これは助けになりますか? –