#include <stdio.h>
#include <mysql/mysql.h>
#include<string.h>
// 编译时 加入参数 -lmysqlclient
/*
int * get_val(int *r)
{
if(r==NULL)
{
r =(int*) malloc(sizeof(int));
r = 100;
}
return r;
}
*/
int main()
{
// 1---- 初始化MYSQL
MYSQL *conn; // int *a =NULL;
MYSQL_RES *res;
MYSQL_ROW row;
const char *host = "localhost"; // "127.0.0.1"
const char *user = "root";
const char *passwd = "123456";
const char *db_name = "aaa";
// 如果数据库没连接 传入NULL 会返回一个新的 MYSQL
conn = mysql_init(NULL);
if(conn==NULL)
{
printf("init fail\n ");
return -1;
}
// 2 ----建立连接 ip地址 用户 密码 数据库名
if(!mysql_real_connect(conn,host,user,passwd,db_name,0,NULL,0))
{
printf("%s\n",mysql_error(conn));
return -1;
}
const char *cname = "utf8"; //能够输出中文
mysql_set_character_set(conn,cname);
// 3 ----执行数据库操作 执行sql语句 sprintf();
// mysql_query(conn,"insert into stu values(1,112,'杨逵')");
int i;
printf("输入几个数据:\n");
scanf("%d",&i);
while(i>0)
{
int m,n;
char name[20];char name2[20]="'";
printf("class=");scanf("%d",&m);
printf("id=");scanf("%d",&n);
printf("name=");scanf("%s",name);
strcat(name2,name);
strcat(name2,"'");
char sql[100]="insert into stu values (%d,%d,%s)";
char sqlbuf[100];
sprintf(sqlbuf,sql,m,n,name2); //添加数据为字符型,必须要加单引号,所以引入name2
mysql_query(conn,sqlbuf);
i--;
}
// mysql_query(conn,"delete from stu where id=32"); -----删除
mysql_query(conn,"select * from stu");
// 4 ----获取结果集
res = mysql_use_result(conn); //------- mysql_use_result()->mysql_fectch_row
// res = mysql_store_result(conn);
if(res==NULL)
{
printf("not result\n");
return 0;
}
int lie = mysql_num_fields(res);
// 5 ------遍历结果集
while(row=mysql_fetch_row(res))
{
for(int i=0;i<lie;i++)
{
printf("%s\t",row[i]);
}
printf("\n");
}
// 6 --------释放结果集
mysql_free_result(res);
// 7 ---------关闭连接
mysql_close(conn);
}
mysql数据库的操作
最新推荐文章于 2023-09-13 16:43:24 发布