DB/MySQL

[MariaDB] Commands out of sync 문제

채윤아빠 2016. 9. 4. 16:09
728x90
반응형



문제점 및 증상

  • Maria DB로 Stored Procedure를 호출하고, 다른 SELECT 문을 호출하였더니, "Commands out of sync; you can't run this command now" 오류가 발생함
  • 여러 가지 방법을 모두 사용하여도 동일한 결과만 나타남.



문제점 분석

  • 여러 가지 검색한 결과, 사용이 끝나지 않은 리소스 때문에 그런 것이라고는 나오는데, 리소스 사용을 끝내는 방법은 찾을 수 없었음


수정 내용

  • 최초 호출하는 저장 프로시저에서 INSERT를 여러 번 수행하고, 마지막으로 삽입된 테이블의 LAST_INSERT_ID() 값을 반환하는 형태였음
  • mysql_fetch_row() 의 호출결과가 없을 때까지도 호출해 봤으나, 별 차이가 없었음
  • 당연히 저장 프로시저 내의 순서대로 PHP 단에서 순차적으로 처리하여도 가능하였을 터나 내키지 않음
  • 결론적으로 다음과 같이 아예 DB와의 연결을 종료했다가 다시 연결하는 방식으로 해결함
            mysql_close($conn);
            $conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWD);
    
            mysql_select_db( DB_NAME );
    
            mysql_query('set session character_set_connection=utf8;'); 
            mysql_query('set session character_set_results=utf8;'); 
            mysql_query('set session character_set_client=utf8;'); 
    

참고자료