I try simple test mysql in c:
id||name
||svnumber||enddate||status
||DATEDIFF(enddate,NOW()) as ngay_con_lai||deleted||company_id||startdate
7632fd79-071d-77ec-0549-65f418d13e78||ECONOMY CLASS||G23038267/226/PL01||2025-03-14||Active||322||0||9ba45d00-8a07-c375-1a5a-5ed734571135||2024-03-15
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql/mysql.h>
int main(int argc, char **argv)
{
char *contract_name =(char *)malloc(120 * sizeof(char));
char *db_svnumber =(char *)malloc(50 * sizeof(char));
char *enddate =(char *)malloc(11 * sizeof(char));
char *status =(char *)malloc(20 * sizeof(char));
int ngay_con_lai =0;
unsigned short db_deleted =0;
char *db_account_id =(char *)malloc(37 * sizeof(char));
char *db_startdate =(char *)malloc(11 * sizeof(char));
sql ="select id,`name`,svnumber,enddate,`status`, DATEDIFF(enddate,NOW()) as ngay_con_lai,deleted,company_id,startdate from crm.oqc_contract where (id='%s')";
sprintf(c_sql, sql, contract_id);
mysql_query(conn, c_sql);
if ( result = mysql_store_result( conn ) )
{
if ( rowdata = mysql_fetch_row(result) ){
strcpy(contract_name, rowdata[1] );
// strcpy(db_svnumber, rowdata[2] ); ///Error in here .Segmentation fault
strcpy(enddate, rowdata[3] );
strcpy(status, rowdata[4] );
ngay_con_lai =atoi(rowdata[5]);
db_deleted =atoi(rowdata[6]);
strcpy(db_account_id, rowdata[7]);
strcpy(db_startdate, rowdata[8]);
}
}
mysql_free_result(result);
return EXIT_SUCCESS;
}
runtime,
Error “Segmentation fault” in this code : strcpy(db_svnumber, rowdata[2] );
All things oke, So please give me ask why ?
i knows that if i change:
char db_svnumber[25] , then ok.
thanks