https://blog.youkuaiyun.com/m0_37806112/article/details/82494023
MySql服务配置:
MySql服务要运行起来,最好是开机自动启动。
方法:chkconfig -level 345 mysqld on
不同版本的MySql有不同的目录设置:
头文件:
目录:/usr/include/mysql
使用:#include <mysql/mysql.h>
说明:必要时可使用-I参数
库文件:
静态库:/usr/lib/mysql/libmysqlclient.a
动态库:/usr/lib/mysql/libmysqlclient.so
使用参数:-L/usr/lib/mysql -lmysqlclient
详解:
MYSQL mysql; //句柄
MYSQL *mysql_init(MYSQL *mysql)
返回值:
MYSQL句柄或描述符;
内存不足是为NULL;
MYSQL *mysql_real_connect(MYSQL *mysql,const char *host, const char *user, const char *passwd, const char *db, \
unsigned int port, const char *unix_socket, unsigned int client_flag)
说明:
与数据库建立连接
失败返回NULL
int mysql_query(MYSQL *mysql, const char *query)
功能:查询实现
说明:
query为数据库操作命令字符串,本义是查询(select),可包括select,update,insert,delete等对数据库操作的命令。
返回值:
0表示正常,非0表示发生了错误。
MYSQL_RES *mysql_store_result(MYSQL *mysql)
功能:结果集处理。如果使用mysql_query运行的是一个SELECT语句,或其它可以返回结果的查询,可用函数mysql_store_result来访问返回结果并并将其保存在一个变量中,以便做进一步处理。
说明:
mysql为mysql_real_connect函数的返回值。
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
功能:读取结果集中的一行
返回值:返回结果集中的一行,结果可以用数组来读取,默认为字符串数组
eg:
Row = mysql_fetch_row(result);
Row[0]….Row[n]
int mysql_num_fields(result); //返回字段数
void mysql_free_result(result);
作用:当对数据库使用完毕后,应对所创建的变量等进行释放:
mysql_close(&mysql);
实战:
-
#include<stdio.h>
-
#include<mysql.h>
-
int main()
-
{
-
MYSQL mysql;
-
mysql_init(&mysql);
-
if(mysql_real_connect(&mysql,"127.0.0.1","root","root","bookMIS",0,NULL,0)==NULL)
-
{
-
printf("%s\n",mysql_error(&mysql));
-
return -1;
-
}
-
//mysql_query(&mysql,"insert into course values('00006','python','2018-09-14')");
-
mysql_query(&mysql,"update course set courseName = 'python' where courseId=00005");
-
if(mysql_query(&mysql,"select *from course ")!=0)
-
{
-
printf("%s\n",mysql_error(&mysql));
-
return -1;
-
}
-
//获取查询结果
-
MYSQL_RES *result=mysql_store_result(&mysql);
-
if(result==NULL)
-
{
-
printf("%s\n",mysql_error(&mysql));
-
return -1;
-
}
-
MYSQL_ROW row;
-
int ncloumn=mysql_num_fields(result);
-
while(row=mysql_fetch_row(result))
-
{
-
int i=0;
-
for(i=0;i<ncloumn;i++)
-
{
-
printf("%s\t",row[i]);
-
}
-
printf("\n");
-
}
-
mysql_free_result(result);
-
mysql_close(&mysql);
-
}
编译:
-
cc=gcc
-
obj= sql.o
-
CFLAGS =-I/usr/include/mysql
-
CFLAGS2=-L/usr/lib/mysql -lmysqlclient
-
edit:$(obj)
-
$(cc) $(obj) $(CFLAGS) -o edit $(CFLAGS2)
-
.PHONY:clean
-
clean:
-
rm edit $(obj)