繁体   English   中英

每次我执行查询时程序挂起

[英]Program hanging every time I execute a query

由于某种原因,我不知道,该程序在尝试执行时崩溃

mysql_query(mysql,"CREATE TABLE writers(name VARCHAR(25))"); 

尽管查询已成功执行并且表已创建,但Windows抱怨程序停止响应,但没有响应。

这是我的主要功能。

int main()
{
    MYSQL* mysql;
    mysql_init(mysql);
    mysql_real_connect(mysql,"localhost","root","xxxx","test",0,NULL,0);
    mysql_query(mysql,"CREATE TABLE writers(name VARCHAR(25))"); // 'Program stops responding' without actually crashing.
    mysql_close(mysql);
    getchar();
    return 0;
}

您对API的使用是错误的,您正在将悬空指针传递给mysql_init而不检查单个返回值 不要那样做

您可以这样转换代码:

MYSQL* mysql = mysql_init(NULL);
if (!mysql) {
  // HANDLE THE ERROR
}
if (!mysql_real_connect(mysql,"localhost","root","xxxx","test",0,NULL,0)) {
  // HANDLE THE ERROR
}
if (mysql_query(mysql,"CREATE TABLE writers(name VARCHAR(25))")) {
  // HANDLE THE ERROR
}
mysql_close(mysql); // No error checking here, that's ok,
                    // it doesn't report errors
                    // But just for this call. All others => check.
getchar();
return 0;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM