欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++用mysql自帶的頭文件連接數(shù)據(jù)庫

 更新時(shí)間:2016年07月17日 22:13:32   投稿:hebedich  
現(xiàn)在正做一個(gè)接口,通過不同的連接字符串操作不同的數(shù)據(jù)庫。要用到mysql數(shù)據(jù)庫。通過網(wǎng)上的一些資料和自己的摸索,大致清楚了C++連接mysql的方法??梢酝ㄟ^2種方法實(shí)現(xiàn)。第一種方法是利用ADO連接,第二種方法是利用mysql自己的api函數(shù)進(jìn)行連接。今天主要來講解下使用API

mysql.h文件在哪,怎么查找。自行百度

#include <mysql/mysql.h>
#include <stdio.h>
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
MYSQL *conn;
 MYSQL_RES *res;
 MYSQL_ROW row;
 
class people
{
public:
  char name[20];
  int pid;
  int type;
  char phone[30];
public:
  people(int a){};
  people(){
    setall();
  };
  ~people(){};
public:
  void setall();
 
};
 
void people::setall()
{
  cout<<"請(qǐng)輸入該用戶的編號(hào)"<<endl;
  cin>>pid;
  cout<<"請(qǐng)輸入該用戶的名字"<<endl;
// gets(name);
  cin>>name;
  cout<<"請(qǐng)輸入該用戶的類型"<<endl;
  cin>>type;
  cout<<"請(qǐng)輸入該用戶的聯(lián)系方式"<<endl;
  cin>>phone;
 
}
void save()
{
  char sql[1000];
  people a;
  sprintf(sql,"insert into student values(%d,'%s',%d,'%s')",a.pid,a.name,a.type,a.phone);
  if(mysql_query(conn, sql))
    {
      printf("添加失敗: (%s)\n",mysql_error(conn));
      return;
    }
    else
    {
      printf("添加成功!\n");
      return;
    }
  return;
}
void update(){
  char sql[1000];
  people a(1);
  cout<<"請(qǐng)輸入你要更改的用戶的編號(hào):";
  cin >> a.pid;
  cout<<"請(qǐng)輸入你要此編號(hào)用戶的姓名:";
  cin >> a.name;
  cout <<"請(qǐng)輸入你要更改的用戶的類型:";
  cin >> a.type;
  cout << "請(qǐng)輸入你要更改的用戶的電話:";
  cin >> a.phone;
  sprintf(sql,"update student set name = '%s',usetype=%d,phone='%s' where pid = %d",a.name,a.type,a.phone,a.pid);
    if(mysql_query(conn, sql))
      {
        printf("更改失?。?(%s)\n",mysql_error(conn));
        return;
      }
      else
      {
        printf("更改成功!\n");
        return;
      }
    return;
}
void del()
{
  char sql[1000];
  int pid;
  cout<<"請(qǐng)輸入你要?jiǎng)h除的人的編號(hào)"<<endl;
  cin>>pid;
  sprintf(sql,"delete from student where pid = %d",pid);
  if(mysql_query(conn, sql))
    {
      printf("刪除 失敗(%s)\n",mysql_error(conn));
      return;
    }
    else
    {
      printf("刪除成功!\n");
      return;
    }
  return;
}
void menu()
{
  cout<<"1.用戶錄入"<<endl;
  cout<<"2.顯示"<<endl;
  cout<<"3.更改"<<endl;
  cout<<"4.刪除"<<endl;
  cout<<"5.退出"<<endl;
}
void show()
{
   if (mysql_query(conn, "select * from student")) {
     fprintf(stderr, "%s\n", mysql_error(conn));
     return;
    }
    res = mysql_use_result(conn);
 
    printf("編號(hào)\t名字\t類型\t聯(lián)系方式\n");
    while ((row = mysql_fetch_row(res)) != NULL){
     cout<<row[0]<<"\t"<<row[1]<<"\t"<<row[2]<<"\t"<<row[3]<<endl;
    }
    mysql_free_result(res);
 
}
int main() {
  int s;
  conn = mysql_init(NULL);
  if (!mysql_real_connect(conn, "localhost",
     "root", "root", "abc", 0, NULL, 0)) {
   fprintf(stderr, "%s\n", mysql_error(conn));
   return -1;
  }
  mysql_query(conn,"set names utf8");
  while(true){
    menu();
    cin>>s;
    if(s==2){show();}
    if(s==1){save();}
    if(s==3){update();}
    if(s==4){del();}
    if(s==5){mysql_close(conn);return 0;}
    cout<<"按任意鍵繼續(xù).."<<endl;
    getchar();
  }
  return 0;
}

相關(guān)文章

  • C語言實(shí)現(xiàn)電話簿管理系統(tǒng)

    C語言實(shí)現(xiàn)電話簿管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)電話簿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • QT中QTableWidget加載大量數(shù)據(jù)不卡頓的解決

    QT中QTableWidget加載大量數(shù)據(jù)不卡頓的解決

    本文主要介紹了QT中QTableWidget加載大量數(shù)據(jù)不卡頓的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Linux中使用C語言的fork()函數(shù)創(chuàng)建子進(jìn)程的實(shí)例教程

    Linux中使用C語言的fork()函數(shù)創(chuàng)建子進(jìn)程的實(shí)例教程

    fork是一個(gè)在Linux系統(tǒng)環(huán)境下專有的函數(shù),現(xiàn)有的進(jìn)程調(diào)用fork后將會(huì)創(chuàng)建一個(gè)新的進(jìn)程,這里我們就來看一下Linux中使用C語言的fork()函數(shù)創(chuàng)建子進(jìn)程的實(shí)例教程
    2016-06-06
  • C語言實(shí)現(xiàn)控制臺(tái)掃雷小游戲

    C語言實(shí)現(xiàn)控制臺(tái)掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)控制臺(tái)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++11線程、互斥量以及條件變量示例詳解

    C++11線程、互斥量以及條件變量示例詳解

    這篇文章主要介紹了C++11線程、互斥量以及條件變量,C++11增加了線程以及線程相關(guān)的類,很方便地支持了并發(fā)編程,使得編寫多線程程序的可移植性得到了很大的提高,本文通過實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2023-03-03
  • C++實(shí)現(xiàn)KDTree 附完整代碼

    C++實(shí)現(xiàn)KDTree 附完整代碼

    這篇文章主要介紹了C++實(shí)現(xiàn)KDTree的代碼詳解,包括kdTree概念介紹及分割的作用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • 哈夫曼的c語言實(shí)現(xiàn)代碼

    哈夫曼的c語言實(shí)現(xiàn)代碼

    著先通過 HuffmanTree() 函數(shù)構(gòu)造哈夫曼樹,然后在主函數(shù) main()中自底向上開始(也就是從數(shù)組序號(hào)為零的結(jié)點(diǎn)開始)向上層層判斷,若在父結(jié)點(diǎn)左側(cè),則置碼為 0,若在右側(cè),則置碼為 1。最后輸出生成的編碼
    2013-07-07
  • C++算法系列之中國農(nóng)歷的算法

    C++算法系列之中國農(nóng)歷的算法

    這篇文章主要介紹了C++計(jì)算中國農(nóng)歷的深入淺析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • C語言安全編碼之?dāng)?shù)值中的sizeof操作符

    C語言安全編碼之?dāng)?shù)值中的sizeof操作符

    這篇文章主要介紹了C語言安全編碼的數(shù)值中的sizeof操作符用法注意事項(xiàng),需要的朋友可以參考下
    2014-07-07
  • OpenCV實(shí)現(xiàn)人臉檢測(cè)

    OpenCV實(shí)現(xiàn)人臉檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)人臉檢測(cè)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評(píng)論