Linux下连接MySQL数据库的操作示例

4327阅读 0评论2011-09-28 siallen
分类:Mysql/postgreSQL

头文件 con_mysql.h
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <mysql/mysql.h>
  4. #include <syslog.h>

  5. #include <iostream>
  6. using namespace std;
  7. //SQL mysql;

  8. MYSQL_RES * doQuery(MYSQL &mysql,const char *sql,int type)
  9. {
  10.   MYSQL_RES *m_res;
  11.   if(mysql_query(&mysql,sql) != 0)
  12.     fprintf(stderr, "mysql_query err: %s",mysql_error(&mysql));
  13.   m_res = mysql_store_result(&mysql);
  14.   if(type==0 && m_res==NULL)
  15.     fprintf(stderr, "get result err: %s",mysql_error(&mysql));
  16.   return m_res;
  17. }

  18. bool mysql_con(MYSQL &mysql)
  19. {
  20.  char *host = "219.223.242.249";
  21.  char *user = "***";
  22.  char *passwd = "***";
  23.  char *db = "***";
  24.  if( mysql_init(&mysql) == NULL )
  25.    return false;
  26.  mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gbk");
  27.  if (mysql_real_connect(&mysql,host,user,passwd,db,0,NULL,0) == NULL)
  28.    return false;
  29.  return true;
  30. }

主程序中

 

  1. #include "con_mysql.h"

  2. void operateDB()
  3. {
  4.  MYSQL mysql;
  5.  MYSQL_RES *m_res;
  6.  MYSQL_ROW m_row;

  7.  if( mysql_con( mysql ) )
  8.  {
  9.    string sql("");
  10.    sql = "select stock_name,stock_id from hotrank";

  11.    m_res = doQuery( mysql, sql.c_str(), 1 ); //con_mysql.h中定义的方法

  12.    for(int i=0;i<mysql_num_rows(m_res);i++)
  13.    {
  14.       for(int j=0;j<mysql_num_fields(m_res);j++)
  15.          cout<<m_row[j]<<" ";

  16.       cout<<endl;

  17.     }

  18.     mysql_free_result(m_res);

  19.     mysql_close(&mysql);

  20.   }

  21.  else
  22.    cout<<"Connect error!"<<endl;
  23. }
上一篇:Linux下文件及目录的一些操作(附递归遍历目录源码)
下一篇:在Java程序中调用Linux命令代码