好的,我flummoxed。 我想在數據庫上執行查詢(本地),我不斷收到連接重置錯誤。我一直在通用的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),並且此字段的驗證不允許超過1200的任何HTML超過1200,而不包含800。
真正的反彈是,如果我把這個SQL字符串並通過命令行執行它,它工作正常 - 所以我不能爲我的生活找出什麼是錯的。
我試圖擴展服務器參數即 Unexpected Connection Reset: A PHP or an Apache issue?
因此,概括地說,我很爲難。有任何想法嗎?
非常感謝,幫助我! :)順便說一句,那應該是'$ db-> getConnection() - > exec($ sql)' – Znarkus 2011-06-30 14:57:30
thx!我修改了語法 – sunwukung 2011-06-30 15:15:04