• 技术文章 >php教程 >php手册

    c连接mysql的实例

    2016-06-21 09:08:46原创408

    mysql

    今天给新来的同事做mysql培训,用到的一个例子:
    连接数据库test 用户名root密码abc
    在里面有一个username的表,describe username结果如下
    mysql> describe username;
    +----------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | id | int(10) | YES | | NULL | |
    | username | varchar(32) | | PRI | | |
    +----------+-------------+------+-----+---------+-------+

    mysql> select * from username;
    +------+----------+
    | id | username |
    +------+----------+
    | 1 | sfs |
    +------+----------+
    1 row in set (0.00 sec)


    本文目的查找执行select id from username这个语句并打印结果
    代码:
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    MYSQL mysql;
    main()
    {
    char host[32]="localhost";
    char user[32]="root";
    char passwd[32]="abc";
    char dbname[32]="test";

    if( mysql_init(&mysql) == NULL )
    {
    syslog(LOG_USER|LOG_INFO,"inital mysql handle errorn");
    return 1;
    }
    if (mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0) == NULL)
    {
    syslog(LOG_USER|LOG_INFO, "Failed to connect to database: Error: %sn",mysql_error(&mysql));
    return 1;
    }
    else syslog(LOG_USER|LOG_INFO, "connect to database: n");
    find_ps();
    db_close();
    return 0;
    }
    int db_close()
    {
    mysql_close(&mysql);
    return 0;
    }


    int find_ps ()
    {
    MYSQL_ROW m_row;
    MYSQL_RES *m_res;
    char sql[1024],username[32];
    int res=1;
    int *id;
    sprintf(sql,"select id from username");
    if(mysql_query(&mysql,sql) != 0)
    {
    syslog(LOG_USER|LOG_INFO, "select ps_info Error: %sn",mysql_error(&mysql));
    return res;
    }
    m_res = mysql_store_result(&mysql);
    if(m_res==NULL)
    {
    syslog(LOG_USER|LOG_INFO, "select username Error: %sn",mysql_error(&mysql));
    res = 3;
    return res;
    }
    if(m_row = mysql_fetch_row(m_res))
    {
    printf("m_row=%dn",atoi(m_row[0]));
    res = 0;
    }
    mysql_free_result(m_res);
    return res;
    }

    编译命令
    gcc -g connect_db.c -L/usr/lib/mysql -lmysqlclient -lz
    注意:
    如果/tmp/ccTGmMS21.o: In function `main':
    /tmp/ccTGmMS21.o(.text+0x11): undefined reference to `mysql_init'
    那么参数增加-L/usr/lib/mysql -lmysqlclient
    如果
    usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_uncompress':
    my_compress.o(.text+0xaa): undefined reference to `uncompress'
    那么增加-lz参数



    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    千万级数据并发解决方案(理论+实战):点击学习

    Mysql单表千万级数据量的查询优化与性能分析

    Mysql主从原理及其在高并发系统中的应用

    专题推荐:nbsp mysql include username RES
    上一篇:一个用PHP和MYSQL写的定饭系统 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• mysql 数据备份类代码• PHP类中的魔术方法(Magic Method)简明总结,magicmethod• 解析用PHP实现var_export的详细介绍• 我的论坛源代码(五)• 简化的实现方法(限制为同一会话页面)
    1/1

    PHP中文网