320x100
현상: C++ 서버에서 특정 쿼리를 실행할 때마다 Commands out of sync; you can't run this command now. 에러가 발생.
한 로직에서 stmt를 여러개 사용하는데, 첫번째 stmt 사용은 문제 없었고 두번째 stmt 사용시마다 에러가 발생.
원인: 기존 첫번째 stmt 사용하던 소스를 복붙하는 과정에서 stmt2를 사용하지 않고 stmt1을 써서 오류
void func()
{
sql::PreparedStatement* stmt1 = getstmt(Key1);
stmt1->setInt(1, 1);
stmt1->executeUpdate();
sql::PreparedStatement* stmt2 = getstmt(Key2);
stmt1->setInt(1, 1);
stmt1->setInt(2, 1);
stmt2->executeUpdate();
}
결과: stmt 변수 오류를 수정하고, 추가로 stmt의 resultset이 남지않게 전부 fetch도 진행하도록 수정
320x100
'DB > MYSQL' 카테고리의 다른 글
ibd 파일로 데이터 복구하기 (0) | 2024.04.28 |
---|---|
mysql에서 ip를 이용한 connect가 실패하는 경우 (0) | 2022.12.05 |
[MariaDB] commands out of sync. Did you run multiple statements at once? (0) | 2022.12.01 |
서버에서 DB로 UTF-8 데이터 삽입시 데이터가 깨지는 문제 (0) | 2022.11.08 |
SELECT FOR UPDATE (0) | 2022.10.20 |