OK, 난 놀랐어. 데이터베이스에서 (로컬로) 쿼리를 실행하려고하는데 연결 재설정 오류가 계속 발생합니다. 나는 일반적인 DAO 클래스에서 아래의 메소드를 사용하여 쿼리 문자열을 작성하고 Zend_Db API에 전달했습니다.MySQL 쿼리에서 연결 재설정
public function insert($params) {
$loop = false;
$keys = $values = '';
foreach($params as $k => $v){
if($loop == true){
$keys .= ',';
$values .= ',';
}
$keys .= $this->db->quoteIdentifier($k);
$values .= $this->db->quote($v);
$loop = true;
}
$sql = "INSERT INTO " . $this->table_name . " ($keys) VALUES ($values)";
//formatResult returns an array of info regarding the status and any result sets of the query
//I've commented that method call out anyway, so I don't think it's that
try {
$this->db->query($sql);
return $this->formatResult(array(
true,
'New record inserted into: '.$this->table_name
));
}catch(PDOException $e) {
return $this->formatResult($e);
}
}
지금까지이 잘 근무하고있다 - 우리는 사용자 입력을 기록하는 새 테이블을 생성하기 때문에 오류가 발생하고있다. 삽입 문자열은 다음과 같습니다 여기
INSERT INTO tablename(`id`,`title`,`summary`,`description`,`keywords`,`type_id`,`categories`) VALUES ('5539','Sample Title','Sample content','
\'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In et pellentesque mauris. Curabitur hendrerit, leo id ultrices pellentesque, est purus mattis ligula, vitae imperdiet neque ligula bibendum sapien. Curabitur aliquet nisi et odio pharetra tincidunt. Phasellus sed iaculis nisl. Fusce commodo mauris et purus vehicula dictum. Nulla feugiat molestie accumsan. Donec fermentum libero in risus tempus elementum aliquam et magna. Fusce vitae sem metus. Aenean commodo pharetra risus, nec pellentesque augue ullamcorper nec. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nullam vel elit libero. Vestibulum in turpis nunc.\'','this,is,a,sample,array',1,'category title')
는 쿼리 (위해서 var_dump) 조립하기 전에 점점 매개 변수입니다
array
'id' => string '1' (length=4)
'title' => string 'Sample Title' (length=12)
'summary' => string 'Sample content' (length=14)
'description' => string '<p>'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In et pellentesque mauris. Curabitur hendrerit, leo id ultrices pellentesque, est purus mattis ligula, vitae imperdiet neque ligula bibendum sapien. Curabitur aliquet nisi et odio pharetra tincidunt. Phasellus sed iaculis nisl. Fusce commodo mauris et purus vehicula dictum. Nulla feugiat molestie accumsan. Donec fermentum libero in risus tempus elementum aliquam et magna. Fusce vitae sem metus. Aenean commodo pharetra risus, nec pellentesque augue'... (length=677)
'keywords' => string 'this,is,a,sample,array' (length=22)
'type_id' => int 1
'categories' => string 'category title' (length=43)
전화의 다음 포트가 테이블에 한계를 확인했습니다, 그 이후 '설명'의 길이가 300 자 (약 310 - 330) 인 경우 삽입하는 것입니다. 필드 제한은 VARCHAR (1500)로 설정되며이 필드의 유효성 검사는 HTML이있는 1200보다 크거나 800이없는 항목을 허용하지 않습니다.
진짜 키커는이 SQL 문자열을 가져 와서 명령 줄을 통해 실행하면 정상적으로 작동하므로 나에게 잘못된 것이 무엇인지 파악할 수 없다는 것입니다.
나는 서버 매개 변수 즉 Unexpected Connection Reset: A PHP or an Apache issue?
그래서, 간단히 말해서, 내가 난처한 상황에 빠진거야 확장 시도했습니다. 어떤 아이디어?
많은 도움을 주셔서 감사합니다. :) Btw, 그건'$ db-> getConnection() -> exec ($ sql)' – Znarkus
thx! 나는 구문을 수정했다. – sunwukung