php - Zend Framework 数据库插入问题

标签 php mysql zend-framework insert

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

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

这似乎通过了适当的 Action ,但该项目未添加到数据库中,MySql 日志中的 sql 语句类似于:

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

不太确定这是哪里出了问题,如有任何指点,我们将不胜感激。

谢谢

最佳答案

数据应采用以下格式:

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

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

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

关于php - Zend Framework 数据库插入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3888739/

相关文章:

php mysql_query() 返回 false

mysql - SQL SELECT 查询不适用于电子邮件地址

mysql - MySQL 中的每月日期

php - 如何扩展 Zend View 实现具体的功能?

zend-framework - 如何在 Zend Framework 中使用命名空间?

mysql - Zend 框架提示 "There is already an active transaction"

php - mysql_real_escape_string() 无法建立到服务器的链接

php - 在 php 中使用 session.use_cookies

将来设置客户端时钟时,PHP session 会立即过期

java - 是否有 Hibernate 注释可以筛选无效的 MySQL 日期?