PHP 5.1.2, MySQL 5.0.20 버젼에서 SP 호출을 위해 mysqli_ 함수 사용시 Lost Connection 되는 문제..
글쓴이: kirrie / 작성시간: 목, 2006/05/18 - 11:56오전
현재 윈도우 상에서 XAMPP를 인스톨하여 (PHP 5.1.2, MySQL 5.0.22 버젼) 개발중입니다.
SP는 변수를 하나 받아서 SELECT하는 구문이구요, Mysqli_Connect를 이용해 디비에 커넥트하고
$Res = Mysqli_Query("CALL recv_something('1');");
위와 같은 함수로 쿼리를 날립니다.
그런데 한 페이지에 CALL이 한번 이상 있을 경우 두번째 쿼리는 Lost connection to MySQL server during query라는 에러를 뱉고 실행되지 않습니다.
이게 항상 그러는 것이 아니라 열번에 한번 정도 이런 현상이 일어납니다. 아예 완전히 두번째 CALL이 안되면 그냥 일반 쿼리를 쓰겠는데, 가끔가다 이러니 참 곤란합니다.
찾아본 바로는 이게 버그라는 이야기도 있고, 디비 커넥션 시에 Mysqli_Init()와 Mysqli_real_connect()를 쓰면 괜찮아 진다는 둥 이야기가 하나로 통일되지 않아서 해결하기가 힘들군요.
답변이나 힌트 좀 부탁드립니다. 답변에 미리 감사드리면서.. 다시 열코딩 모드로 -_-;;
Forums:
자답?
음.. 아깐 바빠서 구글링을 못했는데, 지금 해보니 버그가 아니군요.
Mysqli_Query로 SP를 CALL할시에 이전 Mysql_Query와는 달리 리턴되는 결과셋이 2개랍니다. 하나는 SELECT 결과셋이고 (대체 뭐에 대한 SELECT란건지;;;) 다른 하나는 SP의 결과셋입니다. 때문에 Mysqli_More_Result()으로 결과셋이 하나 이상이라고 판단되면 Mysqli_Next_Result()로 결과셋을 날려(?) 버린 뒤에 다음 SP를 CALL하라는 이야기 같습니다. (PHP 레퍼런스에도 참고되는 내용이 있습니다.)
아.. 대략 정신이 멍해지는군요. SP를 그냥 Mysql_Query로 CALL하면 안되겠니? -_-;;
좀 더 구체적인 설명 가능하신분은 설명 부탁드립니다..
데비안으로 대동단결!
--->
데비안 & 우분투로 대동단결!
댓글 달기