Хорошо, это вопрос из двух частей, первая основная проблема - это бит nextval()
. У меня есть таблица, в которой один из столбцов является столбцом с автоматическим увеличением. Поскольку я новичок в postgres и Zend DB, у меня возникли проблемы. Вставка новой строки в таблицу.
Это то, что у меня есть до сих пор (и в CLI это работает). Но не в Zend DB.
class Comments extends Zend_Db_Table_Abstract
{
protected $_name = 'comments';
public function setComment($comment_id = null, $id = null, $comment = null)
{
if(($comment_id == null)||(empty($comment_id))||(trim($comment_id) == '')){return false;}
if(($id == null)||(empty($id))||(trim($id) == '')){return false;}
if(($comment == null)||(empty($comment))||(trim($comment) == '')){return false;}
echo 'check one';
$db = Zend_Db_Table::getDefaultAdapter();
if($comment_id == "none")
{
$created = time()*1000;
$data = array(
"comment_id" => nextval('comments_comment_id_seq'),
"comment" => $comment,
"comment_level" => 1,
"is_active" => true,
"status" => 0,
"id" => $id,
"user_id" => $_SESSION['role']['user_id'],
"ts_create" => $created,
"ts_mod" => $created
);
$table->insert($data);
return true;
}
}
}
Я получаю следующую ошибку:
Неустранимая ошибка: вызов неопределенной функции nextval () в /home/src/branches/portal/application/model/Comments.php в строке 45 b >
Так что не совсем уверен, как приспособиться к этому. Я больше знаком с mySQL, где я могу просто отбросить NULL
, и он будет автоматически увеличиваться. Итак, в целом большая проблема заключается в следующем: есть ли у Zend DB что-нибудь в структуре, с помощью которой я могу исправить эту проблему?
Следующая часть, поскольку это вопрос из двух частей. При использовании $table->insert($data);
будет ли автоматически использоваться переменная $_name
? Я прочитал документ Zend по этому вопросу, но в настоящее время меня немного сбивает с толку, как определить правильную таблицу в случае вставки.
nextval
- person zerkms   schedule 25.09.2012