/**
* Вставляем текущий объект статьи в базу данных, устанавливаем его свойства.
*/
public function insert() {
// Есть у объекта статьи ID?
if (!is_null($this->id)) {
trigger_error("Article::insert(): Attempt to insert an Article object that already has its ID property set (to $this->id).", E_USER_ERROR);
}
// Вставляем статью
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "INSERT INTO articles ( publicationDate, title, summary, content ) VALUES ( FROM_UNIXTIME(:publicationDate), :title, :summary, :content )";
$st = $conn->prepare ( $sql );
$st->bindValue( ":publicationDate", $this->publicationDate, PDO::PARAM_INT );
$st->bindValue( ":title", $this->title, PDO::PARAM_STR );
$st->bindValue( ":summary", $this->summary, PDO::PARAM_STR );
$st->bindValue( ":content", $this->content, PDO::PARAM_STR );
$st->bindValue( ":id", $this->id, PDO::PARAM_INT );
$this->id = $conn->lastInsertId();
$st->execute();
$conn = null;
}
Сам обработчик
:(
<?php
session_start();
require( "config.php" );
$action = isset( $_GET['action'] ) ? $_GET['action'] : "";
$username = isset( $_SESSION['username'] ) ? $_SESSION['username'] : "";
if ( $action != "login" && $action != "logout" && !$username ) {
login();
exit;
}
switch ( $action ) {
case 'login':
login();
break;
case 'logout':
logout();
break;
case 'newArticle':
newArticle();
break;
case 'editArticle':
editArticle();
break;
case 'deleteArticle':
deleteArticle();
break;
default:
listArticles();
}
function newArticle() {
$results = array();
$results['pageTitle'] = "newArticle";
$results['formAction'] = "newArticle";
if ( isset( $_POST['saveChanges'] ) ) {
header( "Location: admin.php?status=changesSaved" );
// Пользователь получает форму редактирования статьи: сохраняем новую статью
$article = new Article;
$article->storeFormValues( $_POST );
$article->insert();
} elseif ( isset( $_POST['cancel'] ) ) {
// Пользователь сбросил результаты редактирования: возвращаемся к списку статей
header( "Location: admin.php" );
} else {
// Пользователь еще не получил форму редактирования: выводим форму
$results['article'] = new Article;
require( TEMPLATE_PATH . "/admin/editArticle.php" );
}
}