#include <iostream>
#include <mysql/mysql.h>
#include <stdio.h>
using namespace std;
int main()
{
MYSQL conn ;
int res ;
MYSQL_ROW row;
MYSQL_RES *result = NULL;
MYSQL_FIELD *field;
MYSQL * mysqlInit = mysql_init(&conn) ; // 会产生 still reachable: 72,768 bytes in 3 blocks 这种内存泄漏,尚未解决
MYSQL * mysql = mysql_real_connect(&conn, "localhost", "root",
"1234", "student", 3306, NULL, 0) ;
printf("%p %p %p\n", mysql , &conn, mysqlInit) ;
string sql = "INSERT INTO info (id,name,age) VALUES (1,\"222\",15)" ;
//mysql_query(&conn, sql.data());
sql = "select * from info" ;
mysql_query(&conn, sql.data());
result = mysql_store_result(&conn) ;
if(mysql_num_rows(result)<=0){
cout << "no result" << endl ;
}
int num = mysql_num_fields(result) ;
cout << "field numbers = " << num << endl ;
for (int i = 0; i < num; i++) {
field = mysql_fetch_field_direct(result, i) ;
cout << field->name << "\t\t" ;
}
cout << endl ;
while((row = mysql_fetch_row( result))){
cout << row[0] << "\t\t" << row[1] << "\t\t" << row[2] <<endl ;
}
mysql_free_result(result) ;
mysql_close(&conn) ;
mysql_library_end(); //解决 possible lost
return 0;
}
编译: g++ mysql.cpp -lmysqlclient