水区人多,问个通用的问题:sqlite中如何转义分号; 把;当作普通字符

这个问题多个平台都会碰到,都有sqlite数据库吧。转义单引号很简单,两个连用就ok,但是如果是分号了?比如一个表里有一个字段表示注释 noteinsert into table_xxx (note) values('abc;def');或者 select * from table_xxx where note='abc;def';这个该如何写法,试了多种方法都不行。sqlite3_bind_text 可以对付这个问题,分号insert进了数据库,但是很多简单的sql也用的话太麻烦了。试了[]{} 包围大法,escape大法都不行。直接就是语法错误Error : unrecognized token: "'abc["Error : near "def": syntax error

第1个回答  2013-08-01
应该是可以的吧,我用命令好像是可以的啊sqlite> create table mytable(notes varchar(12));create table mytable(notes varchar(12));sqlite> select * from mytable;select * from mytable;sqlite> insert into mytable(notes) values('12;3');insert into mytable(notes) values('12;3');sqlite> select * from mytable;select * from mytable;12;3sqlite> select * from mytable where notes='12;3';select * from mytable where notes='12;3';12;3sqlite>
第2个回答  2013-08-01
现在想想它的错误提示是2行,正是由于被拆成了2行执行所致啊,低级错误啊。
第3个回答  2013-08-01
使用sqlite3_mprintf的%q语法也只能解决单个引号的问题,分号被保留了。
第4个回答  2013-08-01
按理说分号只要被放到 单引号里面之后就自动是去了 语句结束符的意义
第5个回答  2013-08-01
百度一下,你就知道,不然问谷歌

Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答
大家正在搜