1

我有这个查询,根据我在这里和文档中找到的示例,这应该可以工作,但是脚本说不......需要数组而不是字符串。我必须做类似的事情吗

$db = $this->db = Zend_Registry::getinstance()->dbAdapter;
$db->select()->from('offer_term')->where('term_id = '.$entry[$i]);
$db->update('status = 0');

上面我得到一个错误,它没有接受一个字符串,它需要是一个数组。

在下面我的整个脚本中断了。所以,我对 Zend 有点陌生,有人愿意详细说明我做错了什么吗?

$db = $this->db = Zend_Registry::getinstance()->dbAdapter;
$db->select()->from('offer_term')->where('term_id = ?',array($entry[$i]));
$db->update('status = ?', array('0'));
4

1 回答 1

3

请查看update() 此处的 Zend Framework 文档。

该方法的签名是:

$db->update($table, $data, $where);

这意味着您必须让适配器知道您正在更新哪个表,以及该表中的哪些行。

您可能应该将代码重写为:

$db->update(
    'offer_term', 
    array('status' => 0), 
    array('term_id = ?' => $entry[$i])
);

这将转化为:

UPDATE offer_term
SET status = 0
WHERE term_id = <myEntry>
于 2012-07-02T21:16:32.123 回答