首页 > 学院 > 开发设计 > 正文

C语言链接Mysql,mysql API简单说明。

2019-11-06 06:11:12
字体:
来源:转载
供稿:网友
#include<MySQL.h>#include<stdio.h>#include<string.h>char* host = "*********";char* user = "**********";char* passWord = "******";char* name = "*********";short port = 3306;int main(){ char* select = "SELECT nick,love,beautiful,wisdom FROM XHX_80.t_xhx_2 where userid=6102480"; MYSQL* conn; MYSQL_RES* res; conn = mysql_init(NULL); if(mysql_real_connect(conn, host, user, password, name, port,NULL ,0 ) ) { PRintf("conncet_success/n"); } else { printf("connect_failed!/n"); } if(0 == mysql_real_query(conn, select, strlen(select) ) ) { printf("select success!/n"); } res = mysql_store_result(conn); if (res) { int lines = mysql_num_rows(res); int cols = mysql_num_fields(res); printf("line:%d,cols:%d/n",lines,cols); MYSQL_FIELD* _fn = NULL; for(;_fn = mysql_fetch_field(res);) { printf("%s/t",_fn->name); } printf("/n"); int i = 0; for(; i< lines; i++) { MYSQL_ROW row =mysql_fetch_row(res); int j = 0; for( ; j < cols; j++) { printf("%s/t",row[j]); } printf("/n"); } } mysql_free_result(res); mysql_close(conn); return 0;}

这里主要展示了select语句;insert等不需要返回内容的语句就更加简单了。 这里连接的是公司的数据库,小伙伴要测试的话请自行修改参数。 Mysq API:主要就是那么几个 MYSQL* conn 这个conn是一个数据库链接句柄,以后的操作实际上就是操作这个句柄; so : conn = mysql_init(NULL); 初始化获得一个mysql句柄; 失败返回null

mysql的连接函数有两个: mysql_connect 但是在mysql 官方手册中这么说的: This function is deprecated. Use mysql_real_connect() instead. 这个函数是弃用。使用mysql_real_connect()。 so 大家尽量使用mysql_real_connect() 。当然某些低版本 mysql应该是可以用的。

函数mysql_real_connect建立一个到mysql数据库的链接。调用这个函数要提供 链接句柄、主机名、用户、密码等参数,最后四个参数依次是数据库名、端口、unix套接字和客户端标志。

if (mysql_real_connect(conn, "localhost", "user", "passwd", NULL, 0, NULL, 0) == NULL) { printf("Error %u: %s/n", mysql_errno(conn), mysql_error(conn)); exit(1); }

用户和密码参数使用任何字符集为MYSQL配置对象; 如果端口不是0,该值用于TCP / ip连接的端口号。 如果unix_socket不是NULL,字符串指定套接字或命名管道使用。 client_flag的价值通常是0,但可以设置为下列标志的组合,使某些特性。 flag详细说明有一张表,大家可以去下面这个网址去看。 https://dev.mysql.com/doc/refman/5.5/en/mysql-real-connect.html

int mysql_real_query(MYSQL *mysql, const char *query, unsigned int length)

参数三个,第一个就是那个mysql句柄,第二个就是一个字符串,也就是相应的sql语句;第三个长度,一般strlen(mysql)就ok;你不应该在语句后增加一个终止的分号(“;”)或/g。

对于mysql查询结果 有一个专门的数据类型: MYSQL_RES 查询结果会存在这个文件句柄里,操作这个句柄即可得到相应的内容;

RES = MYSQL_RES *mysql_store_result(MYSQL *mysql);

这个大家请看上面代码吧,基本写法差不多。

最好说道编译,要加头文件 mysql.h;并且要链接库; -I/usr/include/mysql/ -L/usr/lib/mysql -lmysqlclient 例如 gcc -o test test.c -I/usr/include/mysql/ -L/usr/lib/mysql -lmysqlclient 最后面这个东西是要安装的;


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表