OK、私は混乱しています。データベースで(ローカルに)クエリを実行しようとしていますが、接続リセットエラーが発生し続けます。ジェネリックDAOクラスで以下のメソッドを使用して、クエリ文字列を作成し、Zend_DbAPIに渡します。
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を超え、HTMLを使用しない場合は800を超えるものは許可されません。
本当のキッカーは、このSQL文字列を取得してコマンドラインから実行すると、正常に機能することです。そのため、私は一生の間、何が問題なのかを理解できません。
サーバーパラメータを拡張しようとしました。つまり、 予期しない接続のリセット:PHPまたはApacheの問題ですか?
だから、一言で言えば、私は困惑しています。何か案は?