语句参数(statement parameters)是指插入到sql命令字符串中的特殊字符,他们作为临时占位符。当一条语句在prepare之后,尚未执行之前,可以给这些占位符绑定指定的值。
参数符号(Parameter Tokens)
语句参数一共有5种类型,它们跟随sql命令字符串一起被传入到sqlite3_prepare函数。
(1)?
一个自动索引的匿名参数,如果一条语句中含有多个“?”语句参数,则它们被隐式的赋予索引1,2…。如:
- INSERTINTOpeople(id,name)VALUES(?,?);
这两个“?”语句参数,分表代表id的值和name的值。需要注意的是sql命令字符串中的?语句参数的书写,不要带单引号,'?'只是一个单字符文本值,并不是一个语句参数。当这条sql命令字符串prepare之后,就可以给这两个“?”语句参数绑定合适的值,之后调用step函数执行语句。
(2)?<index>
具有显示数字索引的语句参数。“?<index>”与“?”相比,主要的优点是,在一条sql命令字符串中可以有多个具有相同索引的问号语句参数,如一条sql命令字符串中包含多个“?1”,这就允许在同一条语句中,在多个语句参数所占据的位置绑定相同的值。如: