Ho un problema con l'update di MYSQL su linguaggio C. Inizialmente scarico tutte le informazioni che mi interessano e il mio programma si mette a lavorare tranquillamente alla fine pero nell'ultimo pezzo di codice dove dopo aver fatto tutte le operazioni devo andare a salavare nel DB mi dice sempre error: 1064
Vi posto il codice così potete meglio rendervi conto:
int query_execute(char *db, char *query, MYSQL *sql){
int cont_occorrenze=0;
MYSQL_RES *res;
MYSQL_ROW row;
MYSQL_FIELD *f;
unsigned int n=0, hj=0;
char *other_query="update movimenti set ip_2='%s' where id_movimento=%d " ;
char query_update[LEN_MAX_QUERY];
memset(query_update, 0x00, LEN_MAX_QUERY);
char *new_ip_2=NULL;
new_ip_2=calloc(LEN_MAX_IP, 1);
//in un altra funzione(precedente a questa) faccio partire la mysql_init e la mysql_real_connect
if (mysql_select_db(sql, db) != 0) //si connette al db
{
printf("\nConnect db error\n");
return EXIT_FAILURE;
}
if (mysql_real_query(sql, query, strlen(query) + 0x1) != 0)
//fa la query "select id_movimenti, ip from Movimenti" e la esegue correttamente
{
printf("Query db error\n");
return EXIT_FAILURE;
}
res = mysql_store_result(sql);
n = mysql_num_fields(res);
f = mysql_fetch_fields(res);
while ((row=mysql_fetch_row(res))) {
new_ip_2=ipWithoutDot(row[1]);
cont_occorrenze = snprintf(query_update, LEN_MAX_QUERY, other_query, new_ip_2, atoi(row[0]));
printf("%s",query_update);
//le stampa correttamente a patto che nn ci sia la funzione successiva ke da un EXIT_FAILURE;
//da Errore 1064 tramite la "hj=mysql_errno(sql)"
//se nn ce questa istruzione tutto il programma funziona correttamente
if (mysql_real_query(sql, query_update, (strlen(query_update))+1 != 0)) {
hj=mysql_errno(sql);
printf("\nQuery db error2: %d\n",hj);
return EXIT_FAILURE;
}
}
}
Ho visto error 1064 ma nn credo sia qlcs che riguarda il codice da me fatto finora....
Vi prego datemi un aiuto ci sto impazzendo 2 giorni a fare prove per far funzionare questo cavolo di istruzione...