我开始使用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 ('?', '?', '?');
不太确定这种情况会在哪里发生,任何指针都会被感激不尽。
由于
答案 0 :(得分:5)
数据应采用下一种格式:
$data = array(
'pageId' => 1,
'title' => 'title',
'body' => 'body'
);
您确定$this->getDbTable()
会返回您的数据库适配器吗?
尝试使用:
$db = new Zend_Db_Table('table_name');
$db->insert($data);