Не видит соединение с БД(PDO)

228
04 мая 2017, 16:07

Всем доброго времени суток.
Делаю добавление в таблицу студента,но почему то при добавление записи не видит соединение.
Всем заранее благодарю за ответ.

Модель PDO:

    <?php
class myPDO extends PDO
{
    public function GetStudents($db){
        $query = $db->prepare('SELECT * FROM students ORDER BY id DESC');
        $query->execute();
        $data = $query->fetchAll();
        return $data;
    }
    public function DeleteStudents($db,$id){
        $query = $db->prepare("DELETE FROM students WHERE id=?");
        $query->bindParam(1, $id);
        $query->execute();
        echo "<script>alert('Статья успешна удалена.');</script>";
        header("Location:index.php");
    }
    public function AddStudents($db,$name,$surname,$age,$city){
        $query = $db->prepare("INSERT INTO students (name,surname,age,city) VALUES (:name,:surname,:age,:city)");
        $data = array('name' => $name, 'surname' => $surname, 'age' => $age, 'city' => $city);
        $query->execute($data);
        echo "<script>alert('Статья успешна добавлена.');</script>";
        header("Refresh: 0");
    }
}

Контроллер

<?php
require_once "models/myPDO.php";
$driver = 'mysql';
$host = 'localhost';
$schema = 'course';
$username = 'root';
$password = '';
$dns = $driver . ':host=' . $host . ';dbname=' . $schema;
try {
    //Подключение к базе данных
    $db = new myPDO($dns, $username, $password);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->exec("set names utf8");
    // Запись в переменную массива столбца.
    $students = $db->GetStudents($db);
    //Удаление
    if (isset($_GET['action'])) {
        if ($_GET['action'] == 'delete') {
            $id = $_GET['id'];
            $students = $db->DeleteStudents($db, $id);
        }
    }
    // Перенаправление на страницу добавления студента
    if (isset($_GET['action'])) {
        if ($_GET['action'] == 'add') {
            header("Location:views/view_add_student.php");
            // Добавление студента
            if (isset($_POST['btn'])) {
                $name = $_POST['name'];
                $surname = $_POST['surname'];
                $age = $_POST['age'];
                $city = $_POST['city'];
                $students = $db->AddStudents($db, $name, $surname, $age, $city);
            }
        }
    }
} catch (PDOException $e) {
    echo $e->getMessage();
}

Форма ввода

<div class="form">
    <form action="../controllers/controller_students.php" method="post">
        <label for="name">Имя:
            <input type="text" name="name" id="name">
        </label>
        <label for="surname">Фамилия:
            <input type="text" name="surname" id="surname">
        </label>
        <label for="age">Возраст:
            <input type="text" name="age" id="age">
        </label>
        <label for="city">Город:
            <input type="text" name="city" id="city">
        </label>
        <input type="submit" name="btn" value="Отправить данные">
    </form>

Ошибка при отправке данных с формы

READ ALSO
Wordpress, плагин при загрузке делает таблицу

Wordpress, плагин при загрузке делает таблицу

Пытаюсь писать плагинОн при включении создает таблицу

181
SimpleXML на PHP

SimpleXML на PHP

В общем, есть код:

221
Как реализовать прайс-лист? [требует правки]

Как реализовать прайс-лист? [требует правки]

Подскажите пжл, как можно реализовать прайс-лист такого плана в бд, и вывести циклом уже на странице

182
Выводит не все значения базы данных

Выводит не все значения базы данных

Хочу получить все значения столбца, у которых найдется соответствиеМой код выводит только первое найденное

243