文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>c连接mysql的实例

c连接mysql的实例

时间:2007-02-17  来源:PHP爱好者

今天给新来的同事做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参数

相关文章
http://forums.devshed.com/t2352/s.html?highlight=perl+mysql+connection(DBI.pm)
非常全面的一个php技术网站,php 爱好者站 http://www.phpfans.net 有相当丰富的文章和源代码.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载