@samokiller

Почему sql-запрос по факту исполняется, а по логике программы говорит что не исполнено?

В с++ отправляю "insert ignore" запрос.
Он исполняется, т.е. данные в БД добавляются.
Но почему то в логе он выдает "#2 error".
И событие #3 не наступает. Что не так?

void sql(string query, MYSQL *DB)
{
	MYSQL_RES *res;
	MYSQL_ROW row;

	mysql_ping(DB);//Проверяем живо ли соединение

		if (!mysql_query(DB, query.c_str())) {
			if (res = mysql_store_result(DB)) {
				log("#3");//#3
				while (row = mysql_fetch_row(res)) {
					for (int i = 0; i < mysql_num_fields(res); i++) {
					}
				}
			}
			else {
				log(query);
				log("#2 error");//#2
				log(mysql_errno(DB));
			}
		}
		else log("#1 error");//#1
		
}
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
vilinyh
@vilinyh
Если query - это insert, то mysql_store_result вернет 0.
Вам нужен mysql_affected_rows(), чтобы проверить вставленные записи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы