mysql

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值