mysql - Mysql C API:命令不同步;你现在不能运行这个命令
问题描述
我使用的是C api mysql,但是连接数据库时遇到错误,我选择了选中的项。“命令不同步;您现在无法运行此命令”
boolean
check_token(char *token) {
MYSQL_RES *res;
MYSQL_ROW row;
char *pass;
char query[200];
snprintf(query, 200, "SELECT * FROM tokens WHERE token = \"%s\"", token); // SELECT * FROM tokens WHERE token = "84ds4d3d3sd453s"
if (mysql_query(&db, query)) {
fprintf(stderr, "%s\n", mysql_error(&db));
return (FALSE);
}
printf("OK\n");
if (!(res = mysql_store_result(&db))) {
fprintf(stderr, "%s\n", mysql_error(&db));
return (FALSE);
}
if (!(row = mysql_fetch_row(res)))
return (FALSE);
pass = row[1];
printf("Le token est %s\n", pass);
mysql_free_result(res);
return (TRUE);
}
之前没有提出进一步的请求。只是连接成功的数据库。
解决方案
MYSQL_RES
如果调用失败,您可能不会释放mysql_fetch_row
,从而使下一个后续调用失败。
free
从函数返回之前的结果。
if (!(row = mysql_fetch_row(res)))
{
mysql_free_result(res); //Free before returning
return (FALSE);
}
pass = row[1];
printf("Le token est %s\n", pass);
mysql_free_result(res);
return (TRUE);
推荐阅读
- java - Volley BasicNetwork.logSlowRequests:慢速网络问题
- powershell - 从 Powershell 变量启动 RunAs
- html - Bootstrap 导航栏不会折叠并且没有响应
- r - 如何删除数据框中的行并根据匹配的字符值对数值求和
- reactjs - 已解决-单击时努力为映射数组列表中的每个项目创建特定的模态弹出窗口-React Native
- javascript - Mongoose findById 函数返回奇怪的响应
- c - 从c中的txt文件读取
- c++ - 如何在系统进程中获取用户的当前会话?
- python - 安装本地 python 包时遇到问题
- python - 列不是熊猫数据框的列