【发布时间】:2013-10-28 00:52:31
【问题描述】:
我有在其中插入数据的 iPhone 应用程序。当我在没有任何条件的情况下获取所有数据时它工作正常,然后如果给定任何条件(如
)它工作正常以下查询则不显示任何内容。
NSString *select =
[NSString stringWithFormat:
@"SELECT * from ContentMaster As ml
LEFT JOIN ContentTagging As cat
ON cat.ContentID = ml.ContentID
where cat.ContenTagText= \'%@\'" ,appDelegate.tagInput];
const char *sql = [select UTF8String];
如果我使用select * form ContentMaster,它不会显示任何使用它的东西,那么它会显示所有添加的记录。
【问题讨论】:
-
顺便说一句,您永远不应该使用
stringWithFormat来构建您的SQL 语句。如果tagInput中有一个撇号怎么办?你的代码会失败。你应该。始终使用?占位符,然后将文本值与sqlite3_bind_text绑定。 -
sqlite3_prepare_v2是否返回SQLITE_OK?如果没有,sqlite3_errmsg报告了什么?也许您可以为两个表共享更多代码以及schema table_info()。ContenTagText看起来很可疑。 (是ContentTagText吗?)但是如果没有更多的代码、有关表模式的信息以及表中的一些记录,我们很难为您提供帮助。 -
tagInput的值是多少?