Linux下C語言處理MySQL資料庫樣本程式,花了n久的時間終於搞清楚了,丫丫的,真麻煩
編譯:
引用
g++ -Imysql/include -Lmysql/lib -o a.out a.cpp -lmysqlclient -lz
這個mysql目錄是某個mysql的源碼目錄,如果有安裝mysql-devel可能是在/usr/ooxx/mysql,沒有的話自己去down源碼
#include<iostream>
#include<string>
#include<fstream>
#include"mysql.h"
using namespace std;
MYSQL * conn = NULL; //MySQL串連控制代碼
//讀取配置
bool read_conf(string &dbhost,
string &dbuser,
string &dbpass,
string &dbname){
ifstream is("judge.conf");
is >> dbhost >> dbuser >> dbpass >> dbname;
return true;
}
bool query(){
int status, state, state2;
MYSQL_RES * res;
MYSQL_ROW row;
string cmd;
MYSQL *conn, mysql;
string dbhost, dbuser, dbpass, dbname;
if(read_conf(dbhost,dbuser, dbpass, dbname)){ //讀取資料庫
if (mysql_init(&mysql) == NULL){
fprintf(stderr, "初始化錯誤\n");
return false;
}
conn = mysql_real_connect(&mysql, dbhost.c_str(), dbuser.c_str(),
dbpass.c_str(), dbname.c_str(), NULL,
"/var/run/mysqld/mysqld.sock", 0);
if(conn == NULL){ //串連失敗
fprintf(stderr, "串連失敗!\n");
return false;
}
}else{ //讀取配置失敗
fprintf(stderr, "讀取配置失敗!\n");
return false;
}
cmd = "SELECT OOXX FROM OOXX";
cout << "Command: " << cmd << endl;
state = mysql_query(conn, cmd.c_str());
cout << "state: " << state << endl;
if(state != 0){//查詢出錯
fprintf(stderr, "%s\n", mysql_error(conn));
return false;
}
res = mysql_store_result(conn);
cout << "affected_rows:" << conn->affected_rows << endl;
while(row = mysql_fetch_row(res), row != NULL){
printf("%s\n", row[0]);
}
return true;
}
int main(){
query();
return 0;
}
如果覺得這篇文章對你有用,請在下面留個言讓我知道,非常感謝^_^
轉載請註明出自 http://felix021.com/blog/read.php?1505 (如是轉載文則註明原出處),謝謝:)