我使用hikashop(eshop組件)創建joomla(2.5)來自動導入客戶。問題是我正在使用不按預期工作的JDatabase事務(回滾不起作用)。方法processSingle處理每個客戶並返回它成功或不成功的天氣。另外爲了調試,還有一個參數可以知道哪個方法(步驟)失敗。我寫了另一個使用相同的回滾結構的腳本,它似乎工作,但這不是。我試圖捕獲DatabaseException,但沒有例外。有部分代碼無法回滾事務。Mysql轉換回滾失敗
foreach ($this->customerList as $customer) {
// start tracking database entries
$this->db->transactionStart();
$oCustomer = new stdClass();
$oCustomer->raw_data = $customer;
// escaping from sql injection
$oCustomer = $this->escapeObj($oCustomer);
// here we process all items taking one and going through all steps
$methodfailed = "";
$success = $this->processSingle($oCustomer, $methodfailed);
$processed++;
if ($success) {
$succeeded++;
// if succeded save changes
$this->db->transactionCommit();
} else {
$failed++;
echo $this->error . "<br/>";
echo "failed method:" . $methodfailed . "<br/>";
// if failed rollback database entries
$this->db->transactionRollback();
}
}
任何人都有類似的問題?順便說一句,我使用PHP/5.3.3-7。
是表是MyISAM,對不起浪費時間。 – insanebits
@ user1597483不是浪費時間;這是一個重要/合法的問題。 –