MySQL cAPI踩下的坑

1.使用mysql_real_query函数查询之后没有对结果集进行释放

MySQL中,如果查询之后没有释放结果集,会导致MySQL无法进行下一步操作

使用mysql_errno获取错误码:2014

正确做法

c 复制代码
//执行查询
mysql_real_query(mysql_, stmt_str.c_str(), length);
//获取结果集
MYSQL_RES *res = mysql_store_result(mysql_);
// 释放结果集以便下一步的mysql插入操作
mysql_free_result(res);

2.mysql_field_count 和 mysql_num_fields 是两个不同的 MySQL 函数

  • mysql_field_count()
    用于获取上一条与指定连接标识符关联的查询所取得的列数。
    返回的是整个查询结果集的列数,而不是特定的行的列数。
    通常用于检查查询返回的列数是否符合预期。
  • mysql_num_fields()
    用于获取结果集中字段的数目,即获取一行中的列数。
    需要传递一个结果集标识符作为参数。
    返回的是结果集中当前行的列数,而不是整个结果集的列数。
相关推荐
噢,我明白了1 小时前
MySQL常用指令--标准的电商/后台管理系统基础结构
数据库·mysql
阿Y加油吧3 小时前
RAG 必学:ANN 检索、HNSW 算法与 Milvus 核心概念详解
数据库·mysql·json
anew___4 小时前
从教科书到实战:深入剖析MySQL数据库恢复机制
数据库·mysql
Filwaod6 小时前
互联网大厂Java面试实战:Spring+Redis+MySQL+JVM场景问答深度解析
jvm·spring boot·redis·mysql·java面试·技术面试·互联网大厂
重生之小比特6 小时前
【MySQL 数据库】基本查询
android·数据库·mysql
罗超驿6 小时前
4.MySQL数据表操作与CRUD详解:从建表、插入到查询的全流程
数据库·mysql
Filwaod6 小时前
Java面试现场:从Redis缓存到分布式事务,水货程序员李四的‘表演‘
java·jvm·spring boot·redis·mysql·面试·多线程
Filwaod7 小时前
互联网大厂Java面试实战:从Spring Boot到AI智能客服,水货程序员李四的翻车现场
spring boot·redis·mysql·spring cloud·微服务·ai·java面试
phltxy7 小时前
Seata 2.2.0:下载、部署与 Nacos + MySQL 集成教程
数据库·mysql·spring cloud·微服务
庞轩px8 小时前
第六篇:Redo Log与Binlog——崩溃恢复的底层保障
mysql·binlog·数据安全·innodb·日志·redo log·update