【发布时间】:2012-10-17 09:31:04
【问题描述】:
这是我要运行的代码。它编译得很好,直到昨天都运行良好。
#include <my_global.h>
#include <mysql.h>
int main(int argc, char **argv)
{
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
int num_fields;
int i;
conn = mysql_init(NULL);
mysql_real_connect(conn, "hostname", "username", "password", "database_name", 0, NULL, 0);
mysql_query(conn, "SELECT * FROM tabletest");
result = mysql_store_result(conn);
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
for(i = 0; i < num_fields; i++)
{
printf("%s ", row[i] ? row[i] : "NULL");
}
printf("\n");
}
mysql_free_result(result);
mysql_close(conn);
}
请注意,mysql_real_connect() 的参数在这里是通用的,以保护隐私,但就像我说的,它昨天起作用了。当我编译成功后尝试运行代码时,我得到:
Segmentation fault (core dumped)
【问题讨论】:
-
“它昨天工作”不是“我不检查我的 mysql API 调用的结果”的好借口。添加错误检查,并将搜索范围缩小到有问题的函数调用。
-
这是完整的错误跟踪吗?
-
@paddy 我不知道如何检查。以及如何缩小搜索范围,除了运行时的那一行之外,我没有更多信息。谢谢。
-
@IonutHulub 是的,没有别的。
-
@paddy 你说得对,我现在正在检查错误,事情变得更有意义了。就我而言,这是一个可怕的错误。谢谢。