본문 바로가기

진리는어디에

MySQL - Commmands out of sync

MySQL을 사용하던 서버가 Commands out of sync 라는 에러를 내며서 정상적으로 동작하지 않는다. 무슨 일인가 싶어 구글에게 물어 봤다. 그러니 나오는 대답..
If you get Commands out of sync; you can't run this command now in your client code, you are calling client functions in the wrong order.

This can happen, for example, if you are using mysql_use_result() and try to execute a new query before you have called mysql_free_result(). It can also happen if you try to execute two queries that return data without calling mysql_use_result() or mysql_store_result() in between.

만일 Command out of sync; you can't run this command now 라는 메시지를 클라이언트 코드에서 보게 된다면, 클라이언트 함수의 순서를 잘 못 호출하고 있는 것이다!!

예를 들자면, mysql_use_result() 함수를 호출하고 mysql_free_result() 호출 하기 이전에 새로운 쿼리를 실행 하면 이런 현상이 발생한다. 또 다른 경우로 리턴 데이터가 있는 두 개의 쿼리를 mysql_use_result()이나 mysql_store_result() 없이 연속으로 호출 하면 같은 현상이 발생한다.

해석이 제대로 된건지는 잘 모르겠다만...들어 보니 thread safe가 제대로 맞지 않아서 이렇게 되었다고 한 것 같은데...

언제 코드를 또 다 살펴 보나...-_-;;;
유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!