Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何构建iOS SQL语句_Iphone_Ios_Sqlite_Uitextfield - Fatal编程技术网

Iphone 如何构建iOS SQL语句

Iphone 如何构建iOS SQL语句,iphone,ios,sqlite,uitextfield,Iphone,Ios,Sqlite,Uitextfield,我有一个名为catalog的数据库,它有两个三列,一个是键字段,另一个是称为“code”的整数,另一个是称为“make”的NSString 我的应用程序允许用户键入代码以搜索具有该代码的任何品牌,因此有一个uitextfield,用户可以在其中键入代码,然后用户按下一个uitextfield单元格,将新的uitableview加载到导航堆栈中。我想显示具有上一个视图中输入的代码的任何品牌。。我已经完成了大部分代码,因为我遵循了一个很棒的指南“专业iphone和ipad数据库应用程序编程”,但是在

我有一个名为catalog的数据库,它有两个三列,一个是键字段,另一个是称为“code”的整数,另一个是称为“make”的NSString

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

这是我的sql请求字符串

const char *sql = "SELECT catalog.make From catalog where catalog.code =???
我想知道接下来应该做什么,如何使用用户在uitextfield中输入的代码执行此语句


任何帮助都将不胜感激。

我只想将SQL语句转换成一个
NSString
,这样更简单

假设您从中收集数据的
UITextField
是一个名为
myText
IBOutlet

NSString *sql = [[NSString alloc] initWithFormat:@"SELECT catalog.make FROM catalog WHERE catalog.code = %@", myText.text];
const char *cString = [sql cStringUsingEncoding:NSASCIIStringEncoding];
[sql release];
其中str是您输入的文本。您可以在进行此查询的方法中将其作为参数传递。 最后

sqlite3_finalize(statement);

如果您正在为IOS构建SQL语句,您可能需要考虑使用ObjyE-C库来支持IOS等。它将帮助您清理数据,因为您正在处理用户数据。您不希望将iOS应用程序暴露于SQL插入攻击。在此库中使用SQLite查询生成器将有助于防止此类攻击,并为您生成SQL语句。它还提供了一个类来管理数据库连接。如果愿意,可以使用ORM帮助简化查询的构建。试试看。

好的,很酷,我不确定这是否可行。。。我也在想一些类似的东西,但这本书并没有涉及太多细节,只是一句“这是我们如何做的”谢谢。文本字段在我的viewcontroller中,我如何将该值传递给这个类。我是否使用#import引用该类,然后像这样调用它myviewcontroller.mytext.text实际上,当变量被传递到int sqlResult=sqlite3_prepare_v2时,该类不起作用,因为该变量需要传递一个const char给它。。。。
sqlite3_finalize(statement);