티스토리 뷰

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가 제대로 맞지 않아서 이렇게 되었다고 한 것 같은데...

언제 코드를 또 다 살펴 보나...-_-;;;
댓글
댓글쓰기 폼