URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9046
[ Назад ]

Исходное сообщение
"MySQL + C++"

Отправлено alxx , 23-Фев-11 14:04 
Я создаю коннект к БД, выполняю запрос на выборку и по результату запроса либо добавляю либо обновляю записи в таблице, но при выполнении в программе кода выскакивает следующая ошибка: "Commands out of sync; you can't run this command now" на каждой итерации цикла.
Код:

//-----------------------------------------------------------------------
  MYSQL *conn;
  char test_query[255];
  strcpy(test_query, "SELECT * FROM drnet WHERE src = \'");
  strcat(test_query,s);
  strcat(test_query,"\' and dst = \'");
  strcat(test_query,d);
  strcat(test_query,"\'");
  
  printf("QUERY: %s\nTEST_QUERY: %s\n",query,test_query);
  conn = mysql_init(NULL);
  
  //Connect to DB
  if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0))
  {
    fprintf(stderr,"mysql_real_connect: %s\n",mysql_error(conn));
    return 1;
  }
  
  //проверка есть ли уже такая запись. Если да, то модифицируем поле переданной информации, если нет, то вставляем новую запись
  if(mysql_query(conn,test_query)!=0)
  {
    printf("update\n");
    char update_query[255];
    strcpy(update_query, "UPDATE drnet SET length = length + ");
    strcat(update_query,datalen);
    strcat(update_query," WHERE src = \'");
    strcat(update_query,s);
    strcat(update_query,"\'");    
    strcat(update_query," AND dst = \'");
    strcat(update_query,d);
    strcat(update_query,"\'");
    printf("UPDATE_QUERY: %s\n",update_query);
    mysql_query(conn, update_query);
    mysql_close(conn);
    return 0;
  }
  
  
  //Query result
  if(mysql_query(conn,query))
  {
    fprintf(stderr,"mysql_query: %s\n",mysql_error(conn));
    mysql_close(conn);
    return 1;
  }
  
  mysql_close(conn);
  
  return 0;
//-----------------------------------------------------------------------


Содержание

Сообщения в этом обсуждении
"MySQL + C++"
Отправлено guest , 23-Фев-11 14:18 
> Я создаю коннект к БД, выполняю запрос на выборку и по результату
> запроса либо добавляю либо обновляю записи в таблице, но при выполнении
> в программе кода выскакивает следующая ошибка: "Commands out of sync; you
> can't run this command now" на каждой итерации цикла.

зовите mysql_use_result() + mysql_free_result() после каждого mysql_query()