[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запись не добавляется в БД
Страницы: 1, 2
Shkiper
Недавно написал для своего кул движка некую фишечку, которая схожа с аналогией MVC. То есть когда я например захожу добавлять новости, то сначала проверяю нажата ли кнопка отправить, и если нажата, то не обрабатывает данные прямо в этом коде, а загружаю файл, который это делает, и отдает результат обработки. Сам класс этой обработки выглядит так:
<?php if(!defined('SYS_KEY')) die('This file is not success');

class Post
{
public static function load($post_name, $arguments = false)
{
$post_dir = APP . "posts/Post_" . $post_name . ".php";
if(require($post_dir))
{
$class_name = "Post_" . $post_name;
if(!method_exists($class_name, "index"))
{
return false;
}
else
{
$object = new $class_name;
if(isset($arguments))
return $object->index($arguments);
else
return
$object->index();
}
}

else
{
return false;
}
}
}

На странице я делаю так:
if(isset($_POST['submit']))
{
$post = Post::load("addnews", $_POST);
}
if(isset($post) && $post['error'])
{
$result = "Ошибка<br />" . $post['error'];
}
else
{
$result = $post['result'];
}

aplication/posts/Post_addnews.php(короче файл обработки страницы)
<?php if(!defined('SYS_KEY')) die('This file is not success');

class Post_addnews
{
public function index($post)
{
$result = "";
$error = array();
$moder = 1;


$insert = Database::query("INSERT INTO `news` (`title`, `description`, `keywords`,`content`, `public`, `author`, `category`, `brief_description`, `alter_name`, `date`) VALUES('".Database::escape($title)."', '".Database::escape($desc)."', '".Database::escape($key)."', '".Database::escape($text)."', '".Database::escape($moder)."', '".Database::escape(User::info($_COOKIE['user_hash'], "login"))."', '".Database::escape($Cat)."', '".Database::escape($briefD)."', '".Database::escape($altName)."', '".date("Y-m-d")."')");
if($insert === true)
{
if($moder == 1)
{
$result = "Новость успешно добавлена";
}
else
{
$result = "Новость успешно добавлена, и после проверки новости модерацией она будет опубликована";
}

}

else
{
$result = "Произошла техническая ошибка. Попробуйте заново)";
}



if(count($error) > 0)
{
$error_result = "<ul>";
foreach($error as $err)
{
$error_result .= "<li>".$err."</li>";
}
$error_result .= "</ul>";
}
else
{
$error_result = false;
}

if(empty($result))
{
$result = false;
}

return array('error'=>$error_result, 'result'=>$result);
}
}

При нажатии на кнопку, мне выдало "Новость успешно добавлена" вроде все норм. Заходу на главную страницы - новости нет :blink:. В БД тоже нет. Странно, хотя в условии стоит if($insert === true)(заметте даже не 2, а три равно) и все равно в БД записи нет. Почему? НА самой странице запись добавлялась, а в файле обработки нет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.