1.首先要找到mysql.h头文件的位置
/usr/include/mysql
(使用命令 where is mysql 可以找到mysql安装的位置)
2.源文件的编译方法
1.先编译 gcc -o connect mysql2.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient (mysql -lmysqlclient之间要 有空格,—I 是加入 include头文件,-L是加入lib)
2.后执行 ./connect
/usr/include/mysql
(使用命令 where is mysql 可以找到mysql安装的位置)
2.源文件的编译方法
1.先编译 gcc -o connect mysql2.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient (mysql -lmysqlclient之间要 有空格,—I 是加入 include头文件,-L是加入lib)
2.后执行 ./connect
3.操作数据库的代码
/*
============================================================================
Name : mysql.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include </usr/include/mysql/mysql.h>
/**
* 测试链接数据库
*/
void ConnectionTest();
/**
* 插入数据
*/
void InsertData();
/**
* 删除数据
*/
void DeleteData();
/**
* 查询数据
*/
void QueryData();
int main(void) {
//ConnectionTest();
//InsertData();
//DeleteData();
QueryData();
return 0;
}
/**
* 测试链接数据库
*/
void ConnectionTest(){
MYSQL mysql;
//int t,r;
mysql_init(&mysql);
/**
* &mysql:数据库的;连接句柄引用
* "localhost": 数据库的位置,"localhost"表示本机,也可以用ip地址远程链接
* "root":管理员名陈
* "123":密码
* "test":数据库名称
*/
if(mysql_real_connect(&mysql, "localhost","root","123","test",0,NULL,0)){
printf("Connted Mysql successful!\n");
}else{
printf("Connted Mysql failed!\n");
}
mysql_close(&mysql);
}
/**
* 插入数据
*/
void InsertData(){
MYSQL mysql;//mysql数据库链接句柄
MYSQL_RES *res;//该结构代表返回行的查询结果
MYSQL_ROW row;//这个是一行数据的类型安全
char *query;
int flag;
mysql_init(&mysql);
if(mysql_real_connect(&mysql, "localhost","root","123","test",0,NULL,0)){
printf("Connted Mysql successful!\n");
}else{
printf("Connted Mysql failed!\n");
}
query = "insert into student(id,name) values(5,5)";
/**
* flage 为插入的标记变量,插入成功返回0
*/
flag = mysql_real_query(&mysql,query,(unsigned int)strlen(query));
if(flag == 0){
printf("Insert data success !\n");
}else{
printf("Inser data failure !\n");
}
mysql_close(&mysql);
}
/**
* 删除数据
*/
void DeleteData(){
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
char* query;
int flag;
mysql_init(&mysql);
if(mysql_real_connect(&mysql,"localhost","root","123","test",0,NULL,0)){
printf("Connted Mysql successful!\n");
}else{
printf("Connted Mysql failed!\n");
}
query = "delete from student where id=1";
/**
* flage 为删除的标记变量,删除成功返回0
*/
flag = mysql_real_query(&mysql, query, (unsigned int)strlen(query));
if(flag == 0){
printf("Delete data success !\n");
}else{
printf("Delete data failure !\n");
}
mysql_close(&mysql);
}
/**
* 查询数据
*/
void QueryData(){
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
char* query;
int flag,i;
mysql_init(&mysql);
if(mysql_real_connect(&mysql,"localhost","root","123","test",0,NULL,0)){
printf("Connted Mysql successful!\n");
}else{
printf("Connted Mysql failed!\n");
}
query = "select * from student";
/**
* flage 为查询的标记变量,查询成功返回0
*/
flag = mysql_real_query(&mysql, query, (unsigned int)strlen(query));
if(flag == 0){
printf("query data success [%s]!\n",query);
}else{
printf("query data failure !\n");
}
/*mysql_store_result讲全部的查询结果读取到客户端*/
res = mysql_store_result(&mysql);
/*mysql_fetch_row检索结果集的下一行*/
while(row = mysql_fetch_row(res)){
/*mysql_num_fields返回结果集中的字段数目*/
for(i=0;i<mysql_num_fields(res);i++){
printf("%s\t",row[i]);
}
printf("\n");
}
mysql_close(&mysql);
}