热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqlite操作数据库函数总结

1、sqlite3_open打开数据库函数,若数据库不存在,则创建打开数据库m_db数据库句柄db_filename数据库位置sqlite3

1、 sqlite3_open
打开数据库函数,若数据库不存在,则创建

//打开数据库
//m_db 数据库句柄
//db_filename 数据库位置
sqlite3* m_db;
if (SQLITE_OK != sqlite3_open(db_filename, &m_db))
{return false;
}

2、sqlite3_prepare
准备sql语句

std::string selectsql = "select * from sqlite_master where name='control_update'";sqlite3_stmt *pstmt;if (SQLITE_OK != sqlite3_prepare(m_db, selectsql.c_str(), selectsql.size(), &pstmt, NULL))return false;

3、sqlite3_step
执行sql语句

if (SQLITE_DONE != sqlite3_step(pstmt))return false;

sqlite3_step返回值解释:
SQLITE_DONE,当执行“insert”和“update”的时候返回此表示执行成功。
SQLITE_ROW,当执行“select”语句的时候肯定会返回多条数据,这个也表示执行成功,但是还没有结束,当返回SQLITE_DONE时表示执行结束,如:

std::string selectsql &#61; "select typeid,md5 from control_update";sqlite3_stmt *pstmt;if (SQLITE_OK !&#61; sqlite3_prepare(m_db, selectsql.c_str(), selectsql.size(), &pstmt, NULL))return false;std::map<std::string, std::string>::iterator itr;//循环获取返回的数据while (SQLITE_DONE !&#61; sqlite3_step(pstmt)){const unsigned char* typeidvalue &#61; sqlite3_column_text(pstmt, 0);const unsigned char* md5value &#61; sqlite3_column_text(pstmt, 1);}sqlite3_finalize(pstmt);

4、sqlite3_exec
sqlite3_exec和sqlite3_step函数的区别&#xff1a;

sqlite3_step() 在执行之前需要调用sqlite3_perpare(),之后需要sqlite3_finalize()
sqlite3_exec() 就是把你提到的三个函数结合在了一起&#xff1a;sqlite3_step()&#xff0c; sqlite3_perpare()&#xff0c; sqlite3_finalize()。
然后提供一个回调函数进行结果的处理。

char* cErrMsg;int res &#61; sqlite3_exec(m_db, "create table control_update(typeid,md5)", NULL, 0, &cErrMsg);if (res !&#61; SQLITE_OK){return false;}

5、sqlite3_column_text
获取查询数据&#xff0c;这个是根据类型获取数据。相似的还有sqlite3_column_int、sqlite3_column_double、sqlite3_column_bytes等

std::string selectsql &#61; "select * from sqlite_master where name&#61;&#39;control_update&#39;";sqlite3_stmt *pstmt;if (SQLITE_OK !&#61; sqlite3_prepare(m_db, selectsql.c_str(), selectsql.size(), &pstmt, NULL))return false;//执行sql语句sqlite3_step(pstmt);//第二个参数的数字表示获取第几个字段值const unsigned char * value &#61; sqlite3_column_text(pstmt, 0);sqlite3_finalize(pstmt);

6、sqlite3_close
关闭数据库

sqlite3_close(m_db);


推荐阅读
author-avatar
瞬间的永恒2502931493
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有