@bitande
PHP

Почему $pdo->exec($query); всегда возвращает 0?

Почему $pdo->exec($query); всегда возвращает 0? Ведь количество измененных строк минимум 1, так как в базе ведь есть строка в которой login = alex. Должно быть 1.

Не получается вообще разобрать как PDO работает, где можно ментора найти, можно и с оплатой, чтобы вместе создать простое приложение, чтобы отвечал на мои тупые вопросы?

<?php

class Reg extends Db{

    private $login;
    private $password;
    private $email;
    private $date;
    private $errors = [];

    public function __construct() {


        $this->login = $_POST['login'];
        $this->password = $_POST['password'];
        $this->email = $_POST['email'];
        $this->date = date('d.m.y');

    }

    public function checkLogin() {

        $pdo = Db::connect();

        try {
            $query = "SELECT login FROM users WHERE login = '{$this->login}'";
//            $stmt = $pdo->prepare($query);
//            $stmt->bindValue(':login', $this->login);
           $t =  $pdo->exec($query);
            echo $query. '<br>';
var_dump($t);

        } catch(PDOException $e) {
            echo 'error - '. $e->getMessage();
        }
    }

    public function checkEmail() {

    }

    public function addUser() {

    }
}
  • Вопрос задан
  • 138 просмотров
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега PHP
PDO::exec() не возвращает результат выборки оператором SELECT. Если вам нужно выбрать данные этим оператором единожды в ходе выполнения программы, пользуйтесь методом PDO::query(). Если требуется запускать один и тот же запрос на выборку множество раз, лучше создать подготовленный запрос PDOStatement методом PDO::prepare(), а затем запускать его методом PDOStatement::execute() столько раз, сколько потребуется.
(с) Документация
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы