#include
#include
#include "stdio.h"
MYSQL mysql, *sock; //mysql连接
MYSQL_RES *res; //这个结构代表返回行的一个查询结果集
MYSQL_ROW row; //一个行数据的类型安全(type-safe)的表示
char query[150]; //查询语句
bool ConnectDatabase(); //函数声明
void FreeConnect();
bool QueryDatabase();
bool InsertData();
int main()
{
ConnectDatabase();
QueryDatabase();
InsertData();
QueryDatabase();
FreeConnect();
return 0;
}
//连接数据库
bool ConnectDatabase()
{
//初始化mysql
mysql_init(&mysql); //连接mysql,数据库
if (!(sock = mysql_real_connect(&mysql,"localhost", "root", "root", "test",0,NULL,0)))
{
printf( "Error connecting to database:%s/n",mysql_error(&mysql));
return false;
}
else
{
printf("Connected.../n");
return true;
}
}
//释放资源
void FreeConnect()
{
//释放资源
mysql_free_result(res);
mysql_close(sock);
}
//查询数据
bool QueryDatabase()
{
sprintf(query, "select * from user"); //执行查询语句
if(mysql_query(sock, query)) //执行SQL语句
{
printf("Query failed (%s)/n",mysql_error(sock));
return false;
}
else
{
printf("query success/n");
}
//获取结果集
if (!(res=mysql_store_result(sock))) //获得sql语句结束后返回的结果集
{
printf("Couldn't get result from %s/n", mysql_error(sock));
return false;
}
//打印结果数
printf("number of fields returned: %d/n",mysql_affected_rows(sock));
//获取字段的信息
printf("|/t%s/t|/t%s/t|/t%s/t|/n", mysql_fetch_field(res)->name, //打印各字段名
mysql_fetch_field(res)->name,mysql_fetch_field(res)->name);
//打印获取的数据
while (row = mysql_fetch_row(res)) //获取下一行
{
printf("|/t%s/t|/t%s/t|/t%s/t|/n", row[0], row[1], row[2]);
}
return true;
}
//插入数据
bool InsertData()
{
sprintf(query, "insert into user values (NULL, 'name4', 44);");
if(mysql_query(sock, query)) //执行SQL语句
{
printf("Query failed (%s)/n",mysql_error(sock));
return false;
}
else
{
printf("Insert success/n");
return true;
}
}