我有一些文本需要放在sqlite数据库中。我不知道如何使sqlite接受文本中的双减号,因为sqlite将其视为注释。
我该怎么办?
答案 0 :(得分:2)
您确定要将字符串放入引号吗? 像这样:
insert into table1 ('Text -- with -- double minus')
修改强>
对于多行字符串,请尝试以下操作:
insert into table1 ('Text' + char(13) + char(10) + '-- with double minus')
答案 1 :(得分:2)
您不应将文本直接放在SQL INSERT语句中; 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')]