我不确定此更新调用缺少什么,这是我的代码:
$table = new Application_Model_DbTable_ProductContaminant();
$db = $table->getAdapter();
$db->getProfiler()->setEnabled(true);
$data = array('value' => '999');
$where[] = $db->quoteInto('product_id = ?', $q['product_id']);
$where[] = $db->quoteInto('contaminant_id = ?', $k);
$table->update($data, $where);
print $db->getProfiler()->getLastQueryProfile()->getQuery();
分析器输出为:
UPDATE `product_contaminants` SET `value` = ? WHERE (product_id = '4802') AND (contaminant_id = 69)
为什么不填充“价值”?
答案 0 :(得分:2)
未填充值,因为getQuery仅返回带参数占位符的预准备语句。如果您想要更新时使用的参数,请尝试以下方法:
$db->getProfiler()->getLastQueryProfile()->getQueryParams()
更多信息here。