0

我试试这段代码。

    query = [NSString stringWithFormat:@"INSERT INTO Bookmark(Names,Details) Values('%@','%@')", delegate.str, delegate.str1];

    NSLog(@"%@",query);

    sqlite3_stmt *compiledStatement;

    if (sqlite3_open([databasepath UTF8String],&database) == SQLITE_OK)
    {

        if(sqlite3_prepare_v2(database,[query UTF8String], -1, &compiledStatement, NULL) == SQLITE_OK)
        {
            if(SQLITE_DONE != sqlite3_step(compiledStatement))
                NSLog( @"Error while inserting data: '%s'", sqlite3_errmsg(database));
            else
                NSLog(@"New data inserted");

            sqlite3_reset(compiledStatement);
        }else
        {
            NSLog( @"Error while inserting '%s'", sqlite3_errmsg(database));
        }
        sqlite3_finalize(compiledStatement);
    }  

这是我想存储 sqlite INSERT INTO 书签(详细信息)值('我们举个例子,23456789 除以 7、11、13。

如图所示,从单位的位置开始制作三胞胎。

23...456...789

现在添加备用三元组:

23 + 789 = 812 和 456。

这两个和的差:812 - 456 = 356

现在将这个差除以 7,我们得到提醒 6

并将这个差除以 11,我们得到提醒 4

并将这个差除以 13,我们得到提醒 5')

这是写你的行后的错误......

2013-07-25 16:38:14.653 数学技巧提示模式 [4346:c07] 插入“s 附近”时出错:语法错误

我如何插入特殊字符请提前帮我解决这个问题。

4

1 回答 1

3

您永远不应该使用 stringWithFormat 等手动形成 SQL 查询。

相反,您应该使用带有变量绑定的准备好的语句。这将确保正确的编码并避免 SQL 注入等。您应该从查看这个 sqlite 介绍开始。

基本模式是使用sqlite3_prepare后跟sqlite3_bind_text设置?查询中占位符之一的值。

于 2013-07-25T10:15:59.740 回答