Zend框架数据库插入问题

时间:2010-10-08 08:04:34

标签: php mysql zend-framework insert

我开始使用Zend Framework并创建了一个合适的模型,将数据保存回数据库表。我遇到的问题是sql语句试图插入'?'作为数据库中每列的值。我创建了以下save函数,它将数据数组传递给DBtable适配器函数:

public function save()     {
    $data = $this->getData();
    if ($data['pageId']==0) {
        $this->getDbTable()->insert($data);
    } else {
         $this->getDbTable()->update($data, array('pageId = ?' => $data['pageId']));
    }
} 

这似乎经过了适当的动作,但项目没有添加到数据库中,并且MySql日志中的sql语句看起来像:

insert into DB_Table ('pageId','title','body') values ('?', '?', '?');

不太确定这种情况会在哪里发生,任何指针都会被感激不尽。

由于

1 个答案:

答案 0 :(得分:5)

数据应采用下一种格式:

$data = array(
   'pageId' => 1,
   'title'  => 'title',
   'body'   => 'body'
);

您确定$this->getDbTable()会返回您的数据库适配器吗? 尝试使用:

$db = new Zend_Db_Table('table_name');
$db->insert($data);