在sqlite3.h的评论中:
for sqlite3_bind_ , * ^可以使用。查找命名参数的索引 ** [sqlite3_bind_parameter_index()] API,如果需要。 ^索引 **“?NNN”参数是NNN的值。 ** ^ NNN值必须介于 1 和[sqlite3_limit()]之间
for sqlite3_column_ * ** ^结果集的最左列具有索引0。 ** ^可以使用确定结果中的列数 ** [sqlite3_column_count()]。
为什么会出现这种奇怪的不一致?
答案 0 :(得分:5)
没有奇怪的不一致。
sqlite3_bind_*()
函数将值与printf样式格式说明符(SQLite3自己的术语中的“主机参数名称”)相关联。它具有与函数参数类似的功能,它匹配约定从1开始编号(“第一个参数”,“第二个参数”,......)。
相似性:在POSIX C中,printf()
函数接受可以使用%N$c
语法修改转换顺序的格式字符串,其中c
是实际的转换说明符字符或字符序列,N
是从一个开始的数字。
但是,列不是类似于参数的实体。它们是可索引数据结构中的项目。它们更类似于,例如,数组的元素,这就是为什么从零开始索引它们是有意义的。