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

#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 最后面这个东西是要安装的;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值