使用sqlite并构建查询,它们都可以正常工作,直到我尝试将某些数据绑定到查询中,例如 -
NSString *query = @"SELECT id, title FROM fields WHERE (staff LIKE '%?%');
sqlite3_prepare_v2(lessonPlansDatabase, [query UTF8String], -1, &stmt, nil);
NSString *theValue = @"Fred";
sqlite3_bind_text(stmt, 1, [theValue UTF8String], -1, NULL);
问题似乎是使用'%'。我已经尝试将它放入我绑定的字符串中,但这也不起作用。如果我只是完整地进行查询,例如 -
NSString *query = @"SELECT id, title FROM fields WHERE (staff LIKE '%Fred%');
并且不绑定任何东西,它工作正常。但我不想这样做,以防字符串中有字符扰乱查询,我宁愿让sqlite做绑定。如果没有'%'字符,绑定就可以正常工作。
非常感谢任何帮助!
答案 0 :(得分:1)
你想要
NSString *query = @"SELECT id, title FROM fields WHERE (staff LIKE ?)";
sqlite3_prepare_v2(lessonPlansDatabase, [query UTF8String], -1, &stmt, nil);
NSString *theValue = @"%Fred%";
sqlite3_bind_text(stmt, 1, [theValue UTF8String], -1, NULL);
答案 1 :(得分:0)
使用(%
)转义(%
)并尝试绑定文字。
(staff LIKE '%%?%%')