[英]insert special character on SQLite with FMDB
我在通过FMDB将值插入表中时遇到问题。 我有这样的SQL字符串:
NSString *sql = [NSString stringWithFormat:@"INSERT INTO table( COMPANY, PAGE_NO ) VALUES ('%@',%d,%d)",value1,value2,value3];
我在上面的SQL字符串中使用FMDB这样的代码:
[FMDatabase: 0x433e80> executeUpdate: sql]
它有效,但是当我使用value1 = @"Test'12"
。 它包含字符" ' "
,但失败。
请帮助我,我想继续使用FMDB中的executeUpdate
方法
谢谢
看起来您没有向查询传递正确数量的参数,您列出了2列并传递了3个参数。 我认为这是一个错字。
您应该真正将查询参数化; 使用?
参数应该放在哪里,然后将其传递给executeUpdate
。 这样,有问题的字符将被自动处理。
那会将您的代码更改为更类似的内容;
NSString *sql = @"INSERT INTO table(COMPANY, PAGE_NO) VALUES (?,?)";
[database executeUpdate:sql, value1, [NSNumber numberWithInt:value2], nil];
注意将int
转换为NSNumber
所需的对numberWithInt
的调用,因为executeUpdate
要求其所有参数都是对象,而不是原始类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.