点击这里给我发消息 点击这里给我发消息

c与mysql连接和一个简单查询的例子

添加时间:2013-12-7
    相关阅读: 数据库 SQL
副标题#e#

    连接数据库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)


    [b:f09d522785]本文目的查找执行select id from username这个语句并打印结果[/b:f09d522785]
    [code:1:f09d522785]
    #include <unistd.h>
    #include <arpa/inet.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <mysql/mysql.h>
    #include <signal.h>
    #include <errno.h>
    #include <syslog.h>
    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 error\n");
    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: %s\n",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: %s\n",mysql_error(&mysql));
    return res;
    }
    m_res = mysql_store_result(&mysql);
    if(m_res==NULL)
    {
    syslog(LOG_USER|LOG_INFO, "select username Error: %s\n",mysql_error(&mysql));
    res = 3;
    return res;
    }
    if(m_row = mysql_fetch_row(m_res))
    {
    printf("m_row=%d\n",atoi(m_row[0]));
    res = 0;
    }
    mysql_free_result(m_res);
    return res;
    }
    [/code:1:f09d522785]

#p#副标题#e#

    编译命令
    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参数

相关c与mysql连接和一个简单查询的例子

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册