SQLSTATE[HY000]: General error: 2053

333
09 мая 2017, 04:17
if ($_GET['section'] == 'task' && isset($_GET['setstatus']) && isset($_GET['task_id']))
{
    if ($_GET['setstatus'] == 1 || $_GET['setstatus'] == 0 && is_numeric($_GET['task_id']))
    {
        $tsdata = [':status' => $_GET['setstatus'], ':id' => $_GET['task_id']];
        $result = $mysql->query("UPDATE  `u387857933_user`.`task` SET  `tstatus` = :status WHERE  `task`.`id` =:id;", $tsdata);
        //var_dump($result);
    }
}

Ошибка: SQLSTATE[HY000]: General error: 2053

Что не так то ?! Класс mysql:

<?
class Mysql {
    private $db;
    private $config;
    public function __construct(){
        try {
            $this->config = include __DIR__ .'/config.php';
            $this->db = new PDO("mysql:dbname={$this->config['dbname']};host={$this->config['dbhost']}", $this->config['dbuser'], $this->config['dbpassword']);
            $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        } catch (PDOException $e) {
            die('<b>Ошбика при подключении к базе данных</b>:     '  . $e->getMessage());
        }
    }
    public function query($sql, $params=[])
    {
        try {
            $sth = $this->db->prepare($sql);
            $sth->execute($params);
            return $sth->fetchAll(PDO::FETCH_OBJ);
        } catch (PDOException $e) {
            die('<b>Ошбика при выполнение запроса QUERY</b>:   ' . $e->getMessage());
        }
    }

}
Answer 1

Потому что после Update нечего выбирать. Там не возвращается массив, а значит на строке $sth->fetchAll все и ломается.

Если нужно посмотреть статусы исполнения операции Update, то надо возвращать это непосредственно из $sth

$rv = $sth->execute(...
return $rv;

Однако возникнут проблемы с другими запросами. Поэтому, как правило, разделяют методы для разных видов запросов, где для update не будет никаких $sth->fetchAll

READ ALSO
Вывод данных из БД php PDO

Вывод данных из БД php PDO

Ребят, всем приветЕсть такая БД:

537
Исключить из выборки

Исключить из выборки

У меня запрос который возвращает вот такой результат

296
PHP, MYSQL - Ошибка expects at least &hellip; parameters (Помогите пожалуйста)

PHP, MYSQL - Ошибка expects at least … parameters (Помогите пожалуйста)

Только начал изучать phpСоздаю чат

237
RedBean условие &ldquo;И&rdquo; внутри запроса

RedBean условие “И” внутри запроса

Всем привет, не так давно начал использовать ORM RedBeanPhpИ по итогам двух дней, копания в доках не могу понять как прописать двойное условие для...

246