函数解析:C语言如何使用Mysql数据库函数解析

各类函数总结

函数名 描述 弃用
my_init() 初始化客户端库全局变量
mysql_affected_rows() 最后一个 、 或 语句更改/删除/插入 UPDATEDELETEINSERT
mysql_autocommit() 设置自动提交模式
mysql_change_user() 在打开的连接上更改用户和数据库
mysql_character_set_name() 当前连接的默认字符集名称
mysql_client_find_plugin() 返回指向插件的指针
mysql_client_register_plugin() 注册一个插件
mysql_close() 关闭与服务器的连接
mysql_commit() 提交交易
mysql_connect() 连接到 MySQL 服务器 是的
mysql_create_db() 创建数据库 是的
mysql_data_seek() 在查询结果集中查找任意行号
mysql_debug() DBUG_PUSH用给定的字符串 执行
mysql_drop_db() 删除数据库 是的
mysql_dump_debug_info() 导致服务器将调试信息写入错误日志
mysql_eof() 判断结果集最后一行是否被读取 是的
mysql_errno() 最近调用的 MySQL 函数的错误号
mysql_error() 最近调用的 MySQL 函数的错误消息
mysql_escape_string() 转义字符串中的特殊字符以用于 SQL 语句
mysql_fetch_field() 下表字段的类型
mysql_fetch_field_direct() 给定字段编号的表字段类型
mysql_fetch_fields() 返回所有字段结构的数组
mysql_fetch_lengths() 返回当前行中所有列的长度
mysql_fetch_row() 获取下一个结果集行
mysql_field_count() 最近语句的结果列数
mysql_field_seek() 查找结果集行中的列
mysql_field_tell() mysql_fetch_field()最后一次调用 的字段位置
mysql_free_result() 免费结果集内存
mysql_get_character_set_info() 关于默认字符集的信息
mysql_get_client_info() 客户端版本(字符串)
mysql_get_client_version() 客户端版本(整数)
mysql_get_host_info() 有关连接的信息
mysql_get_option() mysql_options()期权 的价值
mysql_get_proto_info() 连接使用的协议版本
mysql_get_server_info() 服务器版本号(字符串)
mysql_get_server_version() 服务器版本号(整数)
mysql_get_ssl_cipher() 当前的 SSL 密码
mysql_hex_string() 以十六进制格式编码字符串
mysql_info() 有关最近执行的语句的信息
mysql_init() 获取或初始化MYSQL结构
mysql_insert_id() AUTO_INCREMENT先前语句为列 生成的 ID
mysql_kill() 杀死一个线程 是的
mysql_library_end() 完成 MySQL C API 库
mysql_library_init() 初始化 MySQL C API 库
mysql_list_dbs() 返回匹配正则表达式的数据库名称
mysql_list_fields() 返回匹配正则表达式的字段名
mysql_list_processes() 当前服务器线程列表
mysql_list_tables() 返回匹配正则表达式的表名
mysql_load_plugin() 加载插件
mysql_load_plugin_v() 加载插件
mysql_more_results() 检查是否存在更多结果
mysql_next_result() 在多结果执行中返回/启动下一个结果
mysql_num_fields() 结果集中的列数
mysql_num_rows() 结果集中的行数
mysql_options() 连接前设置选项
mysql_options4() 连接前设置选项
mysql_ping() 平服务器
mysql_plugin_options() 设置插件选项
mysql_query() 执行语句
mysql_real_connect() 连接到 MySQL 服务器
mysql_real_escape_string() 对语句字符串中的特殊字符进行编码
mysql_real_escape_string_quote() 对语句字符串中的特殊字符进行编码以考虑引用上下文
mysql_real_query() 执行语句
mysql_refresh() 刷新或重置表和缓存
mysql_reload() 重新加载授权表 是的
mysql_reset_connection() 重置连接以清除会话状态
mysql_rollback() 回滚事务
mysql_row_seek() 在结果集中查找行偏移量
mysql_row_tell() 结果集行中的当前位置
mysql_select_db() 选择数据库
mysql_server_end() 完成 MySQL C API 库
mysql_server_init() 初始化 MySQL C API 库
mysql_session_track_get_first() 第一部分会话状态变化信息
mysql_session_track_get_next() 会话状态更改信息的下一部分
mysql_set_character_set() 设置当前连接默认字符集
mysql_set_local_infile_default() LOAD DATA LOCAL处理程序回调设置为默认值
mysql_set_local_infile_handler() 安装特定于应用程序的 LOAD DATA LOCAL处理程序回调
mysql_set_server_option() 为当前连接设置选项
mysql_shutdown() 关闭 MySQL 服务器
mysql_sqlstate() 最近调用的 MySQL 函数的 SQLSTATE 值
mysql_ssl_set() 准备与服务器建立 SSL 连接
mysql_stat() 服务器状态
mysql_stmt_affected_rows() UPDATE最后准备的, DELETE, or INSERT语句 更改/删除/插入的行数
mysql_stmt_attr_get() 获取准备好的语句的属性值
mysql_stmt_attr_set() 为准备好的语句设置属性值
mysql_stmt_bind_param() 将应用程序数据缓冲区与准备好的语句中的参数标记相关联
mysql_stmt_bind_result() 将应用程序数据缓冲区与结果集中的列相关联
mysql_stmt_close() 准备好的语句使用的空闲内存
mysql_stmt_data_seek() 在准备好的语句结果集中查找任意行号
mysql_stmt_errno() 最近调用的 MySQL 准备语句函数的错误号
mysql_stmt_error() 最近调用的 MySQL 准备语句函数的错误消息
mysql_stmt_execute() 执行准备好的语句
mysql_stmt_fetch() 获取下一个结果集行并返回所有绑定列的数据
mysql_stmt_fetch_column() 获取当前结果集行的一列数据
mysql_stmt_field_count() 最近准备好的语句的结果列数
mysql_stmt_free_result() 分配给语句处理程序的空闲资源
mysql_stmt_init() MYSQL_STMT 为结构 分配和初始化内存
mysql_stmt_insert_id() AUTO_INCREMENT先前准备好的语句 为列生成的 ID
mysql_stmt_next_result() 在多结果准备语句执行中返回/启动下一个结果
mysql_stmt_num_rows() 缓冲语句结果集中的行数
mysql_stmt_param_count() 准备语句中的参数数量
mysql_stmt_param_metadata() 返回参数元数据作为结果集
mysql_stmt_prepare() 准备执行语句
mysql_stmt_reset() 在服务器端重置语句缓冲区
mysql_stmt_result_metadata() 将准备好的语句元数据作为结果集返回
mysql_stmt_row_seek() 在准备好的语句结果集中查找行偏移量
mysql_stmt_row_tell() 准备语句结果集行中的当前位置
mysql_stmt_send_long_data() 将长数据分块发送到服务器
mysql_stmt_sqlstate() 最近调用的 MySQL 准备语句函数的 SQLSTATE 值
mysql_stmt_store_result() 检索并存储整个结果集
mysql_store_result() 检索并存储整个结果集
mysql_thread_end() 完成线程处理程序
mysql_thread_id() 当前线程 ID
mysql_thread_init() 初始化线程处理程序
mysql_thread_safe() 客户端是否编译为线程安全的
mysql_use_result() 启动逐行结果集检索
mysql_warning_count() 前一条语句的警告计数

常用函数

mysql_init()函数初始化一个mysql的结构体,mysql_real_connect用于连接mysql数据库。下面是使用例子:

1
2
3
4
5
6
7
8
9
10
int connect_database(){
/*链接Mysql服务器*/
conn = mysql_init(NULL);
if(!mysql_real_connect(conn, "127.0.0.1", "root", "test123", "my_qq", 0, NULL, 0))
{
perror("mysql_connect");
return -1;
}
return 0;
}

mysql_real_query()函数用于数据库查询,mysql_store_result()函数用于将查询到的数据导出,mysql_fetch_row()函数用于将查询到的结果按行赋值给MYSQL_ROW结构体,mysql_free_result()函数用于释放这个结果,mysql_close()用于关闭数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
MYSQL_RES *result;
MYSQL_ROW row;
int ret = 0;
ret = mysql_real_query(conn, sql,sql_len);
//查询数据库
result = mysql_store_result(conn);
//查询到对应数据
if (ret)
{
free(sql);
fprintf(stderr, "mysql_error:%s\n", mysql_error(conn)); // 打印错误信息
mysql_close(conn); // 关闭数据库连接
return(EXIT_FAILURE);
}
else{
row = mysql_fetch_row(result);
//将查询到的结果按行赋值给row
if(row != 0)
{
memset(msg,'\x00',BUFFER_SIZE);
sprintf(msg,"This query %s",row[0]);
mysql_free_result(result);
mysql_close(conn); // 关闭数据库连接
return 0;
}