Ios 带问号的Sqlite查询

Ios 带问号的Sqlite查询,ios,database,sqlite,Ios,Database,Sqlite,在SQLitequery中我有一个疑问。我在iOS-SQLite数据库的一些示例代码中有一个四行三列的表 我正在使用查询从表中获取数据:- Select * from table where column_name=? ; 根据示例代码,列的名称=?有问题。?是什么意思 它用于增加行数吗?我希望它可以帮助您。。。“?”用于……的标记 这通常意味着一个准备好的语句,稍后将在其中填充参数。 (参见示例) 或 在某些语句中,准备语句时参数未知,因为每次执行语句时都可以插入不同的值。在这些语句中,可以

SQLite
query中我有一个疑问。我在iOS-SQLite数据库的一些示例代码中有一个四行三列的表

我正在使用查询从表中获取数据:-

Select * from table where column_name=? ;
根据示例代码,
列的名称=?
有问题。是什么意思

它用于增加行数吗?

我希望它可以帮助您。。。“?”用于……的标记

这通常意味着一个准备好的语句,稍后将在其中填充参数。 (参见示例)

在某些语句中,准备语句时参数未知,因为每次执行语句时都可以插入不同的值。在这些语句中,可以使用问号(?)占位符,执行语句时必须在其中提供参数


尽管PreparedStatement对象可用于不带参数的SQL语句,但您可能最常将其用于带参数的SQL语句。使用带有参数的SQL语句的优点是,您可以使用相同的语句,并在每次执行时为其提供不同的值。

表示将使用值绑定的占位符(例如,要设置文本值,请在编写语句之后,但在使用
sqlite3\u步骤执行之前,使用
sqlite3\u bind\u text

见文件


这是一个需要了解和使用的非常重要的结构,因为您永远不想使用
stringWithFormat
构建SQL。通过使用
sqlite3\u bind
,您不必编写不带引号的代码,例如,您试图插入
Joe's Bar and Grill
的值>(如果使用单引号,撇号将弄乱SQL)或
Dwayne“the Rock”Johnson
(如果使用双引号,引号将弄乱SQL)。它还可以保护您免受SQL注入攻击。一定要使用
sqlite3\u bind
而不是手动生成SQL语句。

是实值的占位符,必须绑定到已编译语句。这将详细介绍绑定


绑定值而不只是将其放入查询字符串中的原因是,它可以防止sql注入攻击—如果您使用的是直接从用户提供的值,则可能会发生这种攻击。

请在此处输入您的列名?—实际值的占位符,但它将从何处获取实际值?bcz我们不使用“%@”在字符串中传递真实值您的问题不清楚,请告诉我您到底想要什么…?我只想知道这个查询将给出什么输出,以及为什么我们在Sqlite中使用“?”