使用撇号将数据安全地插入到SQLite数据库中

时间:2011-03-31 13:11:58

标签: iphone sqlite

我正在尝试根据用户提供的文本在SQLite数据库中创建一个表。一切都正常,除非我试图在文本中添加撇号(这是新的表名)。经过研究,我确定我所做的并不是最容易注射的最佳实践:

    const char *sqlStr = [[NSString stringWithFormat:@"CREATE Table '%@' ('Name' 'char(50)','ID' 'integer')",theString]UTF8String];

所以我试图找到一种方法,允许将撇号包含在表名中,并将值安全地插入到数据库中。我已经阅读了有关绑定值的信息,但是这可以通过'CREATE TABLE'语句实现吗?或者仅当您将数据插入现有表时?

感谢您的帮助。

1 个答案:

答案 0 :(得分:10)

来自documentation

  

通过将字符串括在单引号(')中形成字符串常量。字符串中的单引号可以通过在行中放入两个单引号来编码 - 如Pascal。

因此:

[theString stringByReplacingOccurrencesOfString:@"'" withString:@"''"];