Ошибка при запросе в базу данных PDO PHP

146
30 января 2020, 07:20

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: mode must be an integer in C:\OSPanel\domains\WorkLeader\app\models\Admin.php on line 55 ( ! ) PDOException: SQLSTATE[HY000]: General error: mode must be an integer in C:\OSPanel\domains\WorkLeader\app\models\Admin.php on line 55

Выдаёт вот такую ошибку Пытаюсь делать сайт с использованием ООП и MVC, всё было ок, но появился затык ввиде PDO. Вот моя модель Model.php

<?php
namespace app\core;
use PDO;
class Model {
    public $db;
    public function __construct() {
        $option = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];
        $config = require 'app/config/db.php';
        extract($config);
        try {
            $this->db = new PDO("mysql:host=$host;dbname=$name;charset=$charset", $user, $password, $option);
        } catch (PDOException $e) {
            die("Ошибка");
        }
    }
    public function query($sql, $params = []) {
        $stmt = $this->db->prepare($sql);
        if (!empty($params)) {
            foreach ($params as $key => $val) {
                $stmt->bindValue(':'.$key, $val);
            }
        }
        $stmt->execute();
        // return $stmt;
    }
}

Файл Admin.php который наследует модель Model.php

<?php
namespace app\models;
use app\core\Model;
class Admin extends Model {
    public function jobAdd($post) {
        $params = [
            'id' => '',
            'name' => $post["name"],
            'url' => $post["url"],
            'country' => $post["country"],
            'sex' => $post["sex"],
            'salary' => $post["salary"],
        ];
        $sql = "INSERT INTO `jobs1` (`id`, `name`, `url`, `country`, `sex`, `salary`) VALUES (:id, :name, :url, :country, :sex, :salary)";
        $this->db->query($sql,$params);
    }
}

И контроллер, который вызывает модель AdminController.php

<?php
namespace app\controllers;
use app\core\Controller;
class AdminController extends Controller {
public function jobsAddAction() {
        if (!empty($_POST)) {
            if (!$this->model->jobsValidate($_POST,'add')) {
                $this->view->message('error', $this->model->error, 'Ошибка!');
            }
            $this->model->jobAdd($_POST);
            $this->view->message('success','Вакансия добавлена','Успешно!');
        }
        $this->view->render();
    }
}

Проверка данных на правильность происходит без проблем. Но вот почему то возникает ошибка при запросе INSERT INTO в бд.

READ ALSO
Компиляция библиотеки в корне проекта [дубликат]

Компиляция библиотеки в корне проекта [дубликат]

Как в линуксе можно скомпилировать программу с библиотекойso, чтобы при запуске программы, она использовала библиотеку, которая лежит в том...

162
множественное определение в c++

множественное определение в c++

Есть такой файл заголовок(header)

127