sqlite3 中执行带变量的命令
来源:互联网 发布:nodejs软件 编辑:程序博客网 时间:2024/05/22 10:20
最近一直在学sqlite3的用法,学了sqlite3的基本用法之后,接着学C语言和sqlite3结合的使用方法,学完了这个之后又学qt中sqlite3的使用方法,不过到现在为止,我都没有成功用qt中的类写好了sqlite3的程序,我是直接用C语言写的,在qt中调用也是没有问题的,纠结了这么久,先这样吧,以后若是需要再更加深入的学习了。学了这些之后,只会用基本sqlite3_exec()执行没有带变量的语句,但是这样的使用太不广泛了,平时写代码的时候更多的时候是需要传入一个变量的,比如我们要插入一个信息到表中,这个表中有(id ,name)两列,我们自然是想着每次要插入的时候直接将(id,name)传进去,然后就调用insert语句就可以完成操作了,这部分的知识就需要用到变量的部分了,网上找了不少例子来看,终于找到了一个满意的了,于是我几乎是照搬了过来用于记录,原网址链接是:http://blog.csdn.net/xiaoaid01/article/details/17892579
记得在运行的时候加上sqlite3的路径
gcc sqlite.c -o sqlite -lsqlite3
还有需要在当前目录下建立一个test.db数据库,在里面创建一个user_info的表,表的内容为(id,name)
以下是代码:
#include <stdio.h>
#include <stdio.h>
#include <string.h>
#include <sqlite3.h>
static sqlite3 *db;
int callback(void *NotUsed,int argc,char **argv,char **azColName)
{
int i;
for(i = 0;i < argc;i++)
{
printf("%s = %s\n",azColName[i],argv[i] );
}
printf("\n");
return 0;
}
sqlite3 * db_connect(char *db_name)
{
int rc = sqlite3_open(db_name,&db);
return db;
}
int db_exec_stmt(char * sql)
{
int rc;
char *zErrMsg = 0;
rc = sqlite3_exec(db,sql,callback,0,&zErrMsg);
if(rc != SQLITE_OK)
{
fprintf(stderr,"SQL error:%s\n",zErrMsg);
sqlite3_free(zErrMsg);
//exit(1);
}
return 0;
}
void db_exec()
{
char *sql = "insert into user_info(id,name) values(?,?)";
sqlite3_stmt *stmt;
const char *tail;
int i;
int ncols;
int rc;
char *name = "condice";
rc = sqlite3_prepare(db,sql,strlen(sql),&stmt,NULL);
if(rc != SQLITE_OK)
{
fprintf(stderr,"sql error:%s\n",sqlite3_errmsg(db));
}
sqlite3_bind_int(stmt,1,28);
sqlite3_bind_text(stmt,2,name,strlen(name),SQLITE_STATIC);
sqlite3_step(stmt);
sqlite3_finalize(stmt);
}
int main(int argc,char **argv)
{
char *db_name = "test.db";
db = db_connect(db_name);
db_exec();
sqlite3_close(db);
return 0;
}
- sqlite3 中执行带变量的命令
- bat脚本中命令执行的结果赋值给变量
- android中sqlite3的一些操作命令
- Js中执行变量中的命令语句
- Makefile内置变量,递归式变量,直接展开式变量,条件赋值,追加赋值,Makefile中shell命令的执行
- SQLite3的操作命令
- SQLite3的操作命令
- sqlite3 的一些命令
- SQLite3的操作命令
- SQLite3的操作命令
- SQLite3的操作命令
- .NET中如何执行命令行命令?带参数
- sqlite3命令详解(中)
- Linux shell脚本中执行命令结果赋值给变量&&echo输出变量是否包含换行符的问题
- makefile中自带的变量
- sed 中带变量的情况
- Android Sqlite数据库中Sqlite3命令的使用
- SQLite3中dos命令下退出"...>"状态的方法
- Android 代码里动态设置TextView/Button等的文字颜色Seletor
- git 失效
- 在Linux(CentOS)下,AAPT解析APK指令报错少库
- iOS开发——生命周期
- UE4 iOS Packaged Game Size
- sqlite3 中执行带变量的命令
- 让scrollview滚动到最底部
- 三元组矩阵的乘法
- jquery实现当页面滚动超过一屏时显示返回顶部按钮
- Epic Games Shows Incredible New Anti-Aliasing Technique – Screenshots + Video Comparison
- Java.util.regex中matcher 和pattern的用法
- MKL在Visual Studio 2010中配置
- Java动态代理一——动态类Proxy的使用
- UE4.9 Hardware & Software Specifications