0
我正在使用FMDB来管理我的sqlite数据库。我实现了一个插入函数并使用它来插入一些行。但有一行无法插入,插入时错误代码为7,错误消息内存不足。如何在init sql字符串中添加转义字符到字符串?
我跟踪sql执行并找到一个字符串值有'可能导致错误的sql语句的字符。所以我想知道如何将这个字符转换成数据库。
SQL字符串是NSString *sql = [NSString stringWithFormat:@"INSERT INTO table(COMPANY, PAGE_NO, RECORD_ID) VALUES('%@',%d,%d)",table.company,table.page_no,table.record_id];
和控制台输出
<FMDatabase: 0x433e80> executeUpdate: INSERT INTO table(COMPANY, PAGE_NO, RECORD_ID) VALUES('Wendy's',-1,234)
公司是一个文本和相应的值是温迪。 '字符可能会导致错误。
在此先感谢。
谢谢你的回答。我知道吗?现在比%@好。 – chancyWu
为什么这样做呢?彻底摆脱'stringWithFormat:'并且使用'sqlite3_bind_xxx'来表示所有的值,而不仅仅是字符串。 – rmaddy