2011-10-21 2 views
1

간단한 PDO 드라이버를 사용하여 PHP 5.3.2, Ubuntu, MySQL 5.1.41, CodeIgniter 2.0.0을 사용합니다.PHP PDO long sql 문 응답 없음

우리가 쿼리 (PHP는 아니지만)에 긴 문자열 (약 11, 12 킬로바이트)을 보내면 MySQL에서 오류나 응답을 반환하지 않습니다. 구문 오류가없고 경고도없고 HTTP 오류도없고 아무 것도 없습니다. PHP는 "보류"상태를 유지합니다.

데이터 문자열이 몇 킬로바이트 짧으면 쿼리가 실행되고 데이터가 데이터베이스에 올바르게 삽입됩니다.

우리는 ~ 11kbytes보다 큰 경우에 MySQL이 보낸 쿼리를받지 못한다고 생각합니다.

PDO::prepare 또는 PDOStatement::execute 중 하나가 실패합니다.

쿼리 :라고

select simpleupdatestoredprocedure(15, 'loooong string'); 

기능 : $this->conn 메인 PDO 개체이며 $qPDOStatement 개체입니다

function _execute($sql) 
{ 
    $q = $this->conn->prepare($sql); 
    $q->execute(); 

    return $q; 
} 

. (우리는 코드의이 부분에서 CodeIgniter 특정 항목을 사용하지 않습니다.)

전달할 수있는 데이터 또는 쿼리의 길이를 제한하는 숨겨진 설정이 있습니까? 필요한 경우이 문제가 발생할 때 정확한 바이트 수를 찾습니다.

답변

0

예외를 트래핑 했습니까? 오라클 PDO 드라이버에서 같은 문제가 발생하여 어딘가의 버퍼를 초과했습니다. 오라클은 실험적이기 때문에 아마도 그렇게 될 것으로 예상됩니다. PHP 오류 로그를 확인 했습니까?