모두 작동하는 것처럼 보입니다. 그러나 NULL이있는 MySQL 필드가 있으면 Segmentation Fault가 발생합니다.C 프로그램 : NULL을 포함하는 필드가있는 MySQL에서 선택할 때 세그먼트 오류
int
selectDB(char * cmd)
{
printf("Cmd: %s\n", cmd);
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
int i;
conn = mysql_init(NULL);
if (conn == NULL) {
printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
exit(1);
}
if (mysql_real_connect(conn, "localhost", "root",
"myPassword", "myDB", 0, NULL, 0) == NULL)
{
printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
exit(1);
}
if (mysql_query(conn, cmd))
{
printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
exit(1);
}
if (!(result = mysql_store_result(conn)))
{
printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
exit(1);
}
while((row = mysql_fetch_row(result))) {
for (i=0 ; i < mysql_num_fields(result); i++)
printf("%s\n", row[i]);
}
if (!mysql_eof(result))
{
printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
exit(1);
}
mysql_free_result(result);
mysql_close(conn);
return 0;
}
내가
char cmd[1000];
snprintf(cmd, 999, "SELECT * FROM users WHERE id = %s", valueptr);
selectDB(cmd);
어느 라인 (들)가 독방 감금 오류를 얻고있다 :
당신은 뭔가를해야합니까? – Chad나는 속임수를 말하는 것이 아니라, 반드시 ... - OP가 mysql이 NULL 포인터를 줄에 넣을 수 있다는 것을 알지 못하는 것 같습니다. – Claudiu
@ Claudio- 네 말이 맞아. 이것은 그를 도울 수는 있지만 멍청이는 아닙니다. 죄송합니다. – MByD