參考了下面兩個博客:
http://www.cnblogs.com/wunaozai/p/3618383.html
http://zhmy.michael.blog.163.com/blog/static/861578792012101244715692/
1. 首先安裝C/C++ API:
sudo apt-get install mysql-server libmysql++-dev
2. 將lib文件拷到公用文件夾:
sudo cp /usr/lib/mysql/* /usr/lib/
3. 寫好C++代碼test.cpp,功能是更改數據庫yg_sql中yg_user_images表中的score
#include <iostream> #include <mysql/mysql.h> using namespace std; int main(int argc,char *argv[]) { MYSQL conn; int res; mysql_init(&conn); //222555yq為數據庫的進入密碼,yg_sql為數據庫名 if(mysql_real_connect(&conn,"localhost","root","222555yq","yg_sql",0,NULL,CLIENT_FOUND_ROWS)) { cout << "connect success!" << endl; //將數據庫yg_user_images表中字段id為1所對應字段score的數據修改為100 res=mysql_query(&conn,"update yg_user_images set score = '100' where id = '1'"); //判斷是否讀取成功 if(res) cout << "error" << endl; else cout << "OK" << endl; mysql_close(&conn); } return 0; }
4. 然后編譯:
g++ test.cpp `mysql_config --cflags --libs` -o test
5. 執行:
./test
再次查看數據庫發現數據庫中對應的score值被修改了
C++讀取數據庫某個字段數據的代碼如下:
#include <iostream> #include <string> #include <mysql/mysql.h> using namespace std; int main(int argc,char *argv[]) { MYSQL conn; int res; MYSQL_RES *result = NULL; MYSQL_FIELD *field = NULL; mysql_init(&conn); //222555yq為數據庫的進入密碼,yg_sql為數據庫名 if(mysql_real_connect(&conn,"localhost","root","222555yq","yg_sql",0,NULL,CLIENT_FOUND_ROWS)) { cout << "connect success!" << endl; res = mysql_query(&conn,"select img_url from yg_user_images"); //讀取數據庫yg_sql的yg_user_images表中圖片路徑字段下的數據(路徑) //判斷是否讀取成功 if(res) cout << "error" << endl; else cout << "OK" << endl; //保存結果 result = mysql_store_result(&conn); //路徑數據的個數 int rowcount = mysql_num_rows(result); cout << rowcount << endl; //字段的個數 int fieldcount = mysql_num_fields(result); cout << fieldcount << endl; //顯示所有字段 for(int i = 0; i < fieldcount; i++) { field = mysql_fetch_field_direct(result,i); cout << field->name << "\t\t"; } cout << endl; //顯示各個字段下的所有數據 MYSQL_ROW row = NULL; row = mysql_fetch_row(result); while(NULL != row) { for(int i=0; i<fieldcount; i++) { cout << row[i] << "\t\t"; } cout << endl; row = mysql_fetch_row(result); } mysql_close(&conn); } return 0; }
按照上面步驟編譯運行,會打印出如下結果: