Чтобы быть более конкретным, у меня есть веб-приложение, которое создает и редактирует события. После нового усечения в моей таблице db, когда я создаю событие, он начинается с id = 1 (хотя, если я помню, он должен начинаться с 0), когда я редактирую конкретное событие (в данном случае, где id = 1) в моем PHPMyAdmin, когда я проверить таблицу, событие, которое было ID = 1 изменен на ид = 0, и когда я пытаюсь добавить новое событие перепрыгнул к ид = 2.Zend update() изменяет идентификатор, хотя идентификатор установлен в NULL & auto_increment
DB класс:
class Application_Model_DbTable_Eventsdb extends Zend_Db_Table_Abstract {
protected $_name = 'events';
public function CreateEvent($category, $title, $subtitle, $video, $date, $ages, $resume, $description, $image1, $image2, $image3, $image4, $image5) {
$data = array(
"id" => NULL,
"category" => $category,
"title" => $title,
"subtitle" => $subtitle,
"video" => $video,
"date" => $date,
"ages" => $ages,
"resume" => $resume,
"description" => $description,
"image1" => $image1,
"image2" => $image2,
"image3" => $image3,
"image4" => $image4,
"image5" => $image5
);
$this->insert($data);
return TRUE;
}
public function UpdateEvent($eventID, $category, $title, $subtitle, $video, $date, $ages, $resume, $description, $image1, $image2, $image3, $image4, $image5) {
$bind = array(
"id" => NULL,
"category" => $category,
"title" => $title,
"subtitle" => $subtitle,
"video" => $video,
"date" => $date,
"ages" => $ages,
"resume" => $resume,
"description" => $description,
"image1" => $image1,
"image2" => $image2,
"image3" => $image3,
"image4" => $image4,
"image5" => $image5
);
$where = "`id` = $eventID";
$this->_db->update($this->_name, $bind, $where);
}
Админ контроллер:
class AdminController extends Zend_Controller_Action {
public function createEventAction() {
$eventdb = new Application_Model_DbTable_Eventsdb();
$form = new Application_Form_CreateEvent();
$this->view->event_form = $form;
if ($this->getRequest()->isPost()) {
if ($form->isValid($_POST)) {
$formdata = $form->getValues();
$confirmation = $eventdb->CreateEvent($formdata['category'], $formdata['title'], $formdata['subtitle'], $formdata['video'], $formdata['date'], $formdata['ages'], $formdata['resume'], $formdata['description'], $formdata['image1'], $formdata['image2'], $formdata['image3'], $formdata['image4'], $formdata['image5']);
if ($confirmation) {
$this->view->confirmation = "Evenimentul a fost introdus cu success.";
}
}
}
}
public function editEventAction() {
$eventdb = new Application_Model_DbTable_Eventsdb();
$form = new Application_Form_EditEvent();
$this->view->tabere = $eventdb->getEventsbyCategory('Tabara');
$this->view->ateliere = $eventdb->getEventsbyCategory('Atelier');
$this->view->workshopuri = $eventdb->getEventsbyCategory('Workshop');
$this->view->petreceri = $eventdb->getEventsbyCategory('Petrecere');
$this->view->alte = $eventdb->getEventsbyCategory('Alt');
if (isset($_GET['eventID'])) {
$eventID = $_GET['eventID'];
$event_data = $eventdb->getEventsbyId($eventID);
$this->view->event_data = $event_data;
$this->view->form = $form;
}
if ($this->getRequest()->isPost()) {
if ($form->isValid($_POST)) {
$renew_data = $form->getValues();
$eventdb->UpdateEvent($eventID, $renew_data['category'], $renew_data['title'], $renew_data['subtitle'], $renew_data['video'], $renew_data['date'], $renew_data['ages'], $renew_data['resume'], $renew_data['description'], $renew_data['image1'], $renew_data['image2'], $renew_data['image3'], $renew_data['image4'], $renew_data['image5']);
$this->_redirect('EditeazaEveniment');
}
}
}
}