2009-10-18 104 views
1

我的表結構是:Zend的數據庫更新不工作

TABLE `licenses` (
`id` int(11) NOT NULL auto_increment, 
`code` varchar(30) collate utf8_unicode_ci NOT NULL, 
`title` varchar(255) collate utf8_unicode_ci NOT NULL, 
`description` text collate utf8_unicode_ci NOT NULL, 
`license_type` char(1) collate utf8_unicode_ci NOT NULL default 'b', 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ; 

目前有數據:

(`id`, `code`, `title`, `description`, `license_type`) 
(2, 'asd', 'asdt', 'asdd', 'b') 

我的數據庫對象是罰款和工作:$ DB [類別:Zend_Db_Adapter_Pdo_Mysql]

我正在使用此更新:

$data=array('id' => 2 , 'code' => 'asd' , 'title' => 'asdt' , 'description' => 'asdd' , 'license_type' => 'b'); 

$db->update('licenses' , $data , $db->quoteInto(" id = ? " , $data['id'])); 

它返回一個rowcount = 0;數據庫中沒有任何更新。

我的數據庫是Mysql。任何人都有任何想法,發生了什麼。

回答

1

問題在於,即使執行了sql,$ db-> update(....)也會返回'0',但作爲綁定參數($ data above)提供的數據是包含在表,我的意思是當sql不改變數據。所以我們的代碼不能依賴返回的行數。

+0

該函數僅返回受影響的行數,因爲該行未被修改。除非你的應用程序收到錯誤或異常,並且你一直在努力,你必須繼續取得成功 – 2009-10-19 23:16:39