如何构建一个iOS SQL语句

问题描述:

我有一个名为catalog的数据库,它有两个三列,一个只是关键字段,另一个是一个称为“代码”的整数,另一个是名为“make”的NSString。如何构建一个iOS SQL语句

我的应用程序允许用户输入代码来搜索具有该代码的任何制造商,因此有一个uitextfield可以输入代码,然后用户按下一个uitextfield单元格,将新的uitableview加载到导航栏上堆栈我想显示任何有前面的视图中输入的代码的产品..我完成了大部分代码,因为我遵循一个伟大的指南“专业iphone和ipad数据库应用程序编程”,但是在我的步骤中他们只是显示所有的数据不是数据的限制,我想知道如何做到这一点。

这里是我的SQL请求字符串

const char *sql = "SELECT catalog.make From catalog where catalog.code =??? 

我想知道要来未来是什么,如何我执行与用户的UITextField已经输入的代码这种说法?

任何帮助将不胜感激。

我只是把SQL语句变成NSString,这很容易。

假设从UITextField你收集的数据是IBOutlet称为myText

NSString *sql = [[NSString alloc] initWithFormat:@"SELECT catalog.make FROM catalog WHERE catalog.code = %@", myText.text]; 
const char *cString = [sql cStringUsingEncoding:NSASCIIStringEncoding]; 
[sql release]; 
+0

好吧很酷,不知道这是否可能......我也在思考这方面的内容,但这本书并没有真正涉及到很多细节,只是“​​这就是我们如何做到这一点”谢谢。 – tinhead 2011-06-08 04:02:53

+0

textfield是在我的viewcontroller中,我将如何将该值传递给此类。 我是否refrence与#import的类,然后调用它 myviewcontroller.mytext.text – tinhead 2011-06-08 04:31:04

+0

其实这dosnt工作作为变量传递给 INT SQLRESULT = sqlite3_prepare_v2 这requiers传递给它一个const char。 ... – tinhead 2011-06-08 05:02:04

if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) { 

    } 

    sqlite3_bind_text(statement, 1, [str UTF8String], -1, SQLITE_TRANSIENT); 

其中海峡是您输入的文本。您可以将它作为参数在您正在进行此查询的方法中传递。 最后

sqlite3_finalize(statement); 

如果您正在为iOS的SQL语句,你可能要等https://github.com/ziminji/objective-c-sql-query-builder考虑使用的Objective-C库为iOS。它将帮助您清理数据,因为您正在处理用户数据。您不希望将您的iOS应用程序暴露给SQL插入攻击。在这个库中使用SQLite查询构建器将有助于防止此类攻击,并为您构建SQL语句。它还提供一个类来管理数据库连接。如果你愿意,你可以使用ORM来帮助简化查询的构建。试一试。