[英]update query not working in sqlite
由于sq-lite数据库中的特殊字符单引号('),我的问题无法更新数据。 我想更新数据,但字符串中的特殊字符(')单引号给Android中的sq-lite数据库错误,如何更新。 查询是:
update pollm set dt_lastaccessedon='null',tx_choice1responsecount='1',tx_choice2responsecount='0',tx_choice3responsecount='0',tx_choice4responsecount='0',tx_choice5responsecount='0',tx_userresponse='TX_OPTION2',tx_questiontext='Is BPM mandatory?',tx_title='BPM',tx_choice1='yes',tx_choice2='no',tx_choice3='don't know', tx_choice4='null',tx_choice5='null',dt_availfrom='2011-07-08 00:00:00.0',dt_availto='2011-07-09 00:00:00.0',tx_status='Closed' where lmspollid='321'
在上面的查询中,问题是“不知道”此字符串中的单引号。 由于此查询无法正常工作。 请帮我
1。
您应该使用方法更新而不是自己生成SQL。 内置方法将为您完成所有必需的转义。
这不仅解决了您的报价问题,而且减轻了SQL注入 。
2。
在此处填写SQLite-常见问题
(14)如何使用包含嵌入式单引号(')字符的字符串文字?
SQL标准指定通过在行中放置两个单引号来转义字符串中的单引号。 在这方面,SQL的工作方式类似于Pascal编程语言。 SQLite遵循此标准。 例:
INSERT INTO xyz VALUES('5 O''clock');
3。
使用DatabaseUtils.sqlEscapeString 。 字符串用单引号引起来,字符串内的单引号变成双引号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.