2016-02-10 2 views
0
struct tm* tm_info; 
struct timeval tv; 
gettimeofday(&tv, NULL); 
tm_info = localtime(&tv.tv_sec); 
strftime(buffer, 33, "%d.%m.%Y, %H:%M", tm_info); 
printf("%s\n", buffer); 

...erreur SQL: près de » 0,2016 ": erreur de syntaxe

sql=(char*)malloc(sizeof("INSERT into MESSAGES(from_user,to_user,time_sent,message) values('")+30+sizeof("','")+30+sizeof("',")+100+sizeof(",' ")+500+sizeof(" ')")); 
strcpy(sql,"INSERT into MESSAGES(from_user,to_user,time_sent,message) values('"); 
strcat(sql,login); 
strcat(sql,"','"); 
strcat(sql,nume_cu_cine_vb); 
strcat(sql,"',"); 
strcat(sql,buffer); 
strcat(sql,",' "); 
strcat(sql,array); 
strcat(sql," ')"); 
rc = sqlite3_exec(db, sql, nothing_to_do_query, 0, &zErrMsg);  
**if(rc != SQLITE_OK) { 
      fprintf(stderr, "SQL error1: %s\n",zErrMsg); 
     sqlite3_free(zErrMsg); }** 

Voici le error1 .. près de" 0,2016" : erreur de syntaxe alors que je suis en cours d'exécution du code (l'erreur est dans le serveur). Je ne sais pas quoi faire .. Aidez-moi si vous connaissez & merci.

+0

Essayez '% Y-% m-% d% H:% M:% S' ou ''% Y-% m-% d% H:% M:% S'' comme chaîne de format' strftime'. – alcedine

Répondre

1

Si vous regardez la chaîne de requête finale que vous générez, vous devriez facilement voir le problème. Il ressemble à ceci:

INSERT into MESSAGES(from_user,to_user,time_sent,message) values('aaa','bbb',10.02.2016, 10:59,' ccc ') 

Vous remarquerez que la date-heure est ajouté est, sans les guillemets, qui salit complètement la requête. Il devrait probablement ressembler à ceci:

INSERT into MESSAGES(from_user,to_user,time_sent,message) values('aaa','bbb', '10.02.2016, 10:59',' ccc ') 

Notez les guillemets autour de la date complète. Ceux-ci en feront un seul champ et rendront la requête valide. Maintenant, pour que MySQL reconnaisse réellement et soit capable d'analyser cette date, vous devriez aussi le mettre dans a valid format, par exemple AAAA-MM-JJ HH: MM: SS au lieu de celui personnalisé que vous utilisez. Ainsi, la valeur du champ final devrait ressembler à ceci:

'2016-02-10 10:54:12' 

et la requête générée devrait ressembler à:

INSERT into MESSAGES(from_user,to_user,time_sent,message) values('aaa','bbb', '2016-02-10 10:54:12',' ccc ') 
+0

Ça marche! Merci beaucoup! – 007