接上篇,针对数据库编程函数进行总结整理;
基本步骤:
1)定义MYSQL类型的变量;
2)初始化句柄;
3)连接数据库;
4)发送sql语句;
5)关闭数据库;
最后编译需要手动链接:
gcc xx.c -o xx -lmysqlclient
1)定义MYSQL类型的变量:
MYSQL mysql;
2)初始化句柄
MYSQL * STDCALL mysql_init(MYSQL * mysql);
参数:句柄地址;
返回值: 成功返回地址;
失败返回NULL;
3)连接数据库
括号内1~8是参数;
MYSQL * STDCALL mysql_real_connect(1,2,3,4,5,6,7,8);
参数:
1)MYSQL * mysql :初始化好的句柄地址;
2)const char * host:主机IP;
3)const char * user : 用户名;
4)const char * passwd : 密码;
5)const char * db :库名(database);
6)unsigned int port : 0
7)const char * unix_socket : NULL
8)unsigned long clientflag : 0
返回值: 成功返回句柄地址;
失败返回NULL;
4)发送sql语句
int STDCALL mysql_query(MYSQL * mysql, const char * q);
参数:
1)mysql:句柄地址;
2)sql语句;
返回值: 成功返回0;
失败返回-1;
5)关闭数据库
void STDCALL mysql_close(MYSQL * SOCK);
6)一些辅助函数
1)输出错误信息;
const char * STDCALL mysql_error(MYSQL * mysql);
2)设置字符集;
int STDCALL mysql_set_character_set(MYSQL *mysql, const char * csname);
3)获取结果集内存的起始地址;
MYSQL_RES * STDCALL mysql_store_result(MYSQL * mysql);
4)获取结果集中记录的行数;
my_ulonglong STDCALL mysql_num_rows(MYSQL_RES * res);
5)获取结果集中记录的列数;
unsigned int STDCALL mysql_num_fields(MYSQL * res);
6)获取一行记录,返回改行记录的起始地址;
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES * result);
7)获取一个字段信息,返回字段信息的起始地址;
MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES * result);
8)释放结果集的内存
void STDCALL mysql_free_result(MYSQL_RES *result);