Проблема вставки базы данных Zend Framework - PullRequest
1 голос
/ 08 октября 2010

Я начинаю использовать 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']));
    }
} 

Это похоже на соответствующие действия, но элемент не добавляется в базу данных, а оператор sql в логах MySql выглядит примерно так:

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

Не совсем уверен, где это падает, любые указатели будут с благодарностью приняты.

Спасибо

1 Ответ

5 голосов
/ 08 октября 2010

Данные должны быть в следующем формате:

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

Вы уверены, что $this->getDbTable() возвращает ваш адаптер БД? Попробуйте использовать:

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