对mysql数据库的操作一般分一下几步:
第一:包含mysql头文件及定义变量
#include <mysql.h>
MYSQL *mysql_conn;
MYSQL_RES *res;
MYSQL_ROW row;
定义一个MYSQL结构体指针存放mysql操作的句柄
定义个MYSQL_RES 结构体指针存放使用语句操作数据库返回结果
定义一个MYSQL_ROW结构体
第二:初始化mysql
mysql_init(mysql_conn)
或者
mysql_conn=mysql_init(NULL)
第三:连接到mysql库
mysql_real_connect(mysql_conn,IP_address,username,password,database,port,NULL,0)
用username 密码password 连接到IP_address:port 的databse库
连接失败返回NULL
第四:执行数据库语句
mysql_query(mysql_conn,"语句")
执行成功返回0
第五:保存执行语句返回结果
res=mysql_store_result(mysql_conn);
第六:使用循环查询结果
while(row=mysql_fetch_row(res))
{
处理结果;
}
举例:
1 #include <iostream>
2 #include <mysql/mysql.h>
3
4 using namespace std;
5
6 int main()
7 {
8 MYSQL mysql_conn;
9 MYSQL_RES *res;
10 MYSQL_ROW row;
11
12 char *ipaddr="localhost";
13 char *username="root";
14 char *password="123456";
15 char *database_name="database";
16
17 if(mysql_init(&mysql_conn)==NULL)
18 {
19 cout<<"初始化失败"<<endl;
20 return 0;
21 }
22 if(mysql_real_connect(&mysql_conn,ipaddr,username,password,database_name,3306,NULL,0)==NULL)
23 {
24 cout<<"连接失败"<<endl;
25 return 0;
26 }
27 cout<<"连接成功"<<endl;
28 if(mysql_query(&mysql_conn,"show tables"))
29 {
30 cout<<"query error!"<<endl;
31 return 0;
32 }
33 res=mysql_store_result(&mysql_conn);
34 cout<<"Tables in "<<database_name<<":"<<endl;
35 while((row=mysql_fetch_row(res))!=NULL)
36 cout<<row[0]<<endl;
37 mysql_free_result(res);
38 mysql_close(&mysql_conn);
39 return 0;
40 }