#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32")
#pragma comment(lib, "libmysql")
#include "mysql.h"
int main(int argc, char* argv[])
{
int j;
int res,sel;
int selId,upd,del;
char str[100];
char sql[100];
MYSQL mysql;
MYSQL_RES *resultset;
MYSQL_ROW row;
mysql_init(&mysql);// 初始化mysql结构
//mysql_real_connect()函数的功能是连接一个MYSql数据库服务器,MYSQL结构地址是&mysql,host主机名或ip地址是localhost,用户名是root,密码是root,数据库是mydb,端口是3306
if (!mysql_real_connect(&mysql, "localhost", "root", "root", "student", 3306, NULL,0))
{
printf("\n数据库连接发生错误!");
}
else
{
printf("\n数据库连接成功!\n");
//插入一条数据到数据库
//mysql_set_character_set(&mysql, "GB2312") ;//可以插入中文的
//
res = mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "utf8"); //很重要
/
strcpy((char*)str,"dd大大");
// res = mysql_query(&mysql, "insert into mytable( username,age,score,id) values('"+str+"',33,3,18)");
sprintf(sql,"insert into mytable( username,age,score,id) values('%s',65,65,65) ",str);
res=mysql_real_query(&mysql,sql,strlen(sql));
//printf("strlen(sql)=%d\n",strlen(str));
if(res)
{
printf("插入数据失败!\n");
}
else
{
//mysql_affected_rows() -- 返回插入或者更新成功的行数。
//printf("插入%d行数据成功!\n",(unsigned long)mysql_affected_rows(&mysql));
printf("成功插入一行数据!\n");
}
//修改数据
upd = mysql_query(&mysql, "update mytable set username='l2222' where id=18");
if(upd){
printf("\n数据库更改发生错误\n");
}
else{
printf("\n数据库更改数据成功\n");
}
//检索全部数据
sel=mysql_query(&mysql,"select * from mytable");
if(sel)
{
printf("数据库查询发生错误");
}
else
{
printf("\n查询数据为:\n");
resultset = mysql_store_result(&mysql);// 获得结果集
if (mysql_num_rows(resultset) != NULL)
{
int numRows = mysql_num_rows(resultset); // 获得结果集中的记录数
int numFields = mysql_num_fields(resultset);// 获得表中字段数
printf("共 %d 行记录,每行 %d 个字段。", numRows, numFields);
j = 1;
//mysql_fetch_row()函数是查询成功后,把查询结果的一行取到一个数组中,以备使用.
//每执行一次mysql_fetch_row(),将自动取到结果中的下一行记录。
while (row = mysql_fetch_row(resultset))
{
int i = 0;
printf("\n 第 %d 行:", j);
for (i = 0; i < numFields; i++)
{
fprintf(stdout, " %s", row[i]); // 打印字段值
}
j++;
}
}
else
{
printf("\n无查询结果!");
}
mysql_free_result(resultset); // 释放结果集
}
del=mysql_query(&mysql,"delete from mytable where id=16");
if(del){
printf("\n数据库删除发生错误\n");
}
else{
printf("\n数据库数据删除成功\n");
}
}
mysql_close(&mysql); // 释放数据库连接
fgetchar();
return 0;
}