赞
踩
该函数组用于绑定变量值到 prepare 语句中,也就是给 sqlite3_stmt变量赋值。前面的文章讲过,我们一定是先通过sqlite3_prepare_v2函数创建并初始化一个 sqlite3_stmt 变量语句,然后使用sqlite3_bind_xxx函数对 这个 sql语句变量进行绑定参数。
常用的sqlite3_bind函数:
- int sqlite3_bind_int(sqlite3_stmt*, int, int);
- int sqlite3_bind_doubule(sqlite3_stmt*, int, double);
- int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int, void(*)(void*));
-
- 参数:
- sqlite3_stmt: 准备语句变量指针。
-
- 第2个形参: sqlite3_stmt变量参数的序号索引值,规定最左侧的SQL参数的索引值为 1,也就是说参数索
- 引值从1开始。
-
- 第3个形参: 是要绑定给第2个形参指向的 变量参数的 实际值。第2个形参可以指向不同的索引值。
-
- 第4个形参: 对于有4个形参的函数,第4个形参一般是第3个形参的长度。
-
- 第5个形参: 是用于BLOB和字符串绑定后的 析构函数,用于在sqlite处理完blob或字符串之后处理它,一
- 般可以设置为NULL。
代码示例:
假设表的字段结构为:person(name,age,sex),数据库指针为 pdb。
- sqlite3_stmt *pstmt;
- const char *sql = "INSERT INTO person(name, age, sex) VALUES(?,?,?);";
- nRet = sqlite3_prepare_v2(pdb, sql, strlen(sql), &pstmt, &pzTail);
- int i;
-
- for(i = 0; i < 10; i++){
- nCol = 1;
- sqlite3_bind_text(pstmt, nCol++, a[i].name, strlen(a[i].name), NULL);
- sqlite3_bind_int(pstmt, nCol++, a[i].age);
- sqlite3_bind_text(pstmt, nCol++, a[i].sex, strlen(a[i].name), NULL);
-
- sqlite3_step(pstmt);
- sqlite3_reset(pstmt);
- }
-
- sqlite3_finalize(pstmt);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。