2016-02-10 7 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); 

...SQL ошибка: рядом с».2016 ": ошибка синтаксиса

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); }** 

Вот в Error1 .. рядом" 0,2016" : ошибка синтаксиса в то время как я бегу код (ошибка находится на сервере). Я не знаю, что делать .. Помогите мне, если вы знаете & спасибо.

+0

Try '% Y-% m-% d% H:% M:% S 'или' '% Y-% m-% d% H:% M:% S'' в качестве вашей строки формата strftime. – alcedine

ответ

1

Если вы посмотрите на конечную строку запроса, которую вы создаете, вы должны легко увидеть проблему. Это выглядит следующим образом:

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

Вы заметите, что дата-время добавляется как есть, без кавычек, который полностью путает запрос. Вероятно, это должно выглядеть следующим образом:

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

Обратите внимание на цитаты в течение всей даты. Они сделают это одним полем и сделают запрос корректным. Теперь для того, чтобы MySQL действительно распознал и смог проанализировать это время, вы также должны поместить его в a valid format, например, YYYY-MM-DD HH: MM: SS вместо пользовательского, который вы используете. Таким образом, окончательное значение поля должно выглядеть примерно так:

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

и сгенерированный запрос должен выглядеть следующим образом:

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

Он работает! Спасибо огромное! – 007