Задать вопрос

Почему не удаётся вызвать row_count в PDO?

Здравствуйте! Подскажите пожалуйста - почему не работает такой код:
$checkuser = $this->connect->prepare("SELECT 'unid' FROM `user` WHERE 'login' = :login");
     $checkuser->execute([":login"=>$login]);
     $checkphone = $this->connect->prepare("SELECT 'unid' FROM `user` WHERE 'phone' = :phone");
     $checkphone->execute([":phone"=>$phone]);
     $checkemail = $this->connect->prepare("SELECT 'unid' FROM `user` WHERE 'email' = :email");
     $checkemail->execute([":email"=>$email]);
     echo PHP_EOL."All good before checkers.".PHP_EOL;
 if ($checkuser->rowCount()!==0 OR $checkphone->rowCount()!==0 OR $checkemail!==0) {}

В конструкторе $this->connect определён так:
$this->connect = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass , [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);


Ошибка: PHP Notice: Undefined property: PDOStatement::$rowCount
Т.е. почему-то я не могу получить доступ к методу rowCount у PDO.
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Akdmeh
@Akdmeh
PHP, Yii2, Music
php.net/manual/ru/pdostatement.rowcount.php
Потому что rowCount возвращает количество задействованных строк в INSERT, DELETE, UPDATE запросах, а не в SELECT.
Для SELECT гуглите sql_calc_found_rows, но там приходится все равно, по сути, делать два запроса.
Ответ написан
Комментировать
toxa82
@toxa82
Судя по ошибке вы вызывали свойство $checkuser->rowCount вместо метода $checkuser->rowCount(). А также имена полей и таблиц нужно брать в обратные кавычки `, а не ' или ", иначе это интерпретируется как строки, а не как имена полей/таблиц. Например:
$sql = 'SELECT `unid` FROM `user` WHERE `login` = :login OR `phone` = :phone OR `email` = :email';
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽