Heim  >  Artikel  >  php教程  >  c连接mysql的实例

c连接mysql的实例

WBOY
WBOYOriginal
2016-06-21 09:08:46796Durchsuche

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参数



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn