Обновить запрос, используя динамические данные в Zend?
Я использую Zend, у меня есть следующий код, как
class Admin_Model_DbTable_Inv extends Zend_Db_Table_Abstract
{
protected $_name = 'test';
public function updateproductstock($qty,$pid)
{
$data = array(
'stock' => 'stock - 2'
);
$this->_db->update($this->_name, $data, product = '.$pid.');
}
}
Здесь я хочу вычесть кол-во из запаса. Например, 2 будет кол-во. qty
будут динамические данные. Как я могу использовать Zend Update здесь. любезно помогите.
Обновил мой пост
2 ответа
Решение
class Admin_Model_DbTable_Inventory extends Zend_Db_Table_Abstract
{
protected $_name = 'test';
public function updateproductstock($qty,$pid)
{
$data = array(
'stock' => new Zend_Db_Expr('stock - '.$qty);
);
$this->_db->update($this->_name, $data, product = '.$pid.');
}
}
class Admin_Model_DbTable_Inv extends Zend_Db_Table_Abstract
{
protected $_name = 'test';
public function updateproductstock($qty)
{
$r = $this->fetchRow($this->select()->where('product = ?', 1));
$r->stock -= $qty;
$r->save();
$data = array(
'stock' => 'stock - '.(string) $qty;
);
$this->_db->update($this->_name, $data, "product = '1'");
}
}
ps: все переменные должны иметь префикс $