0
我需要將NULL字段的值更改爲空字符串(在sales_flat_order表中)。 我試過這段代碼:無法將空字符串保存到字段值
$orders = Mage::getModel('sales/order')->getCollection()
->addAttributeToFilter('created_at', array('to' => $endDate))
->addAttributeToFilter('status', array('eq' => Mage_Sales_Model_Order::STATE_COMPLETE));
foreach ($orders as $order) {
$comment = $order->getCustomerNote();
if (is_null($comment)) {
$order->setData('customer_note', '');
try {
$order->save();
} catch (Exception $e){
echo $e->getMessage(); exit;
}
}
}
但在基地我見猶NULL值在此申請。 如果我將空字符串更改爲任何非空,它工作正常。 如何將NULL值字段更新爲空字符串?
謝謝。
我假設你已經檢查過sales_flat_order表中有一個名爲customer_note的列嗎?這不是一個默認列,這就是爲什麼我問。如果你總是需要它是一個空字符串,爲什麼不只是改變表上的列定義爲空字符串作爲默認而不是NULL'ALTER TABLE sales_flat_order ALTER COLUMN customer_note SET DEFAULT'';'然後手動更新您現有的記錄帶UPDATE的數據庫sales_flat_order SET customer_note =''WHERE customer_note = NULL AND state ='complete';'。調用保存時,該值實際上是否保存在數據庫中? – Ashley
是的,「customer_note」是自己的專欄。它需要默認的NULL值。在前端,我提出了一個案例:如果customer_note爲null,則放置textarea,否則,如果它不是空字符串,則顯示它。最後,我決定我的問題與derict sql(在cron作業中):Mage :: getSingleton('core/resource') - > getConnection('core_write') - > query(..)。我只是感到驚訝,Magento不允許更新空值來清空字符串:( – Dzurillo