c连接mysql的实例
今天给新来的同事做mysql 培训 ,用到的一个例子: 连接 数据库 test 用户名root密码abc 在里面有一个username的表,describe username结果如下 mysql describe username; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null
今天给新来的同事做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)
原文转自:http://www.ltesting.net
|