mysql
来源:互联网 发布:刘易斯汉密尔顿 知乎 编辑:程序博客网 时间:2024/06/08 05:04
C语言API
1.定义数据结构
MYSQL *mysql; //用来操作数据库的结构指针MYSQL_RES *res; //存储操作结果的结构指针MYSQL_ROW row; //存储操作结果的一行unsigned long *lengths;unsigned int num_fields;unsigned long long num_rows;unsigned long long affected_rows;unsigned long len;unsigned long str_len;char to[2*len+1];char from[len];
2.常用的函数
mysql = mysql_init(NULL); //初始化操作句柄mysql_real_connect(mysql, HOST, USER_NAME, PASSWD, NAMEOFDATABASE, 0, NULL, 0); //连接数据库mysql_real_query(mysql, query_str, strlen(query_str)); //操作数据库,query_str为mysql语句res = mysql_store_result(mysql); //存储查询结果num_fields = mysql_num_fields(res); //返回结果集中的列数num_rows = mysql_num_rows(res); //返回结果集中的行数while ( row = mysql_fetch_row(res) ) //得到查询结果的一行,可以通过row[i]访问数据{ lengths = mysql_fetch_lengths(res); //在选定行后,返回目前行的长度,可以同过lengths[i]访问}if ( mysql_field_count(&mysql) == 0 ) //在res为空的情况下,检查是否不是select操作 affected_rows = mysql_affected_rows(MYSQL *mysql); //对于不返回结果的操作,返回受影响的行数if(*mysql_error(&mysql)){ // an error occurred }if(mysql_error(&mysql)[0]){ // an error occurred }str_len = mysql_real_escape_string(mysql, to, from, len);
mysql_real_escape_string转义from中的特殊字符,可以用来转换二进制数据成字符串,用来拼接在mysql语句中,返回除去末尾’\0’的转换后的字符串长度。只能用在已经建立连接的情况下。\, ‘, “, NUL(ASCII 0), \n, \r 和Control+Z都被编码。
值得注意的是,即使在数据库中不存在某条记录,而检查“res =mysql_store_result(mysql);”中的res结果,它不为NULL,因为只有在出错的时候才能有NULL值返回。
3.编译
需要链接库:
-lmysqlclient
4.参考
https://dev.mysql.com/doc/refman/5.7/en/c-api.html
阅读全文
0 0
- Mysql
- MySql
- MYSQL
- MySQL
- mysql
- mysql
- mysql
- mysql
- Mysql
- Mysql
- mysql
- MySQL
- mysql
- Mysql
- mysql
- mysql
- mysql
- mySQL
- CodeForce896 B. Ithea Plays With Chtholly
- PyQt5让QScrollArea支持鼠标拖动操作
- 前端websocket使用教程(聊天功能)
- 配置ssh无密码登录、安装Java运行环境、Hadoop安装、Hadoop伪分布式配置
- 漏洞分析挖掘基础知识
- mysql
- VUE(五)
- JAVA中JDK和JRE的区别
- 【Android Studio】platform-tools is too old to check APIs compiled with API 27
- JavaWeb.国际化
- HTML5获取当前地理位置并在百度地图上展示的实例
- Java常量池理解与总结
- Hadoop 安装与环境搭建——遇到的问题及解决方法总结
- python3 flask框架