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

Rya*_*yan 5 sqlite iphone

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

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

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

谢谢你的帮助.

jni*_*nic 10

文档:

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

从而:

[theString stringByReplacingOccurrencesOfString:@"'" withString:@"''"];
Run Code Online (Sandbox Code Playgroud)