Можно ли использовать rowCount() в подготовленных выражениях?

Здравствуйте! Можно ли применять метод rowCount() к подготовленным выражениям при использовании PDO MySQL в PHP?
Т.е. как-то так:
$connect = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
        $check = $connect->prepare("SELECT mainname FROM `domain` WHERE unid = :domainid AND vhost = :vhostid AND userid = :userid AND type = 'alias'");
        $check = $check->execute(array(":domainid" => $domainid , ":vhostid" => $vhostid, ":userid" => $login));
if ($check->rowCount()!=1) {}
  • Вопрос задан
  • 214 просмотров
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Можно но не нужно.
Для запросов типа SELECT применять эту функцию нет ни малейшего смысла.

В данном случае логичнее сделать fetch. Мы же запрашивали какие-то данные из БД? Значит их надо получить. А если мы их получили - значит данные есть, и считать их не нужно
$check->execute(array(":domainid" => $domainid , ":vhostid" => $vhostid, ":userid" => $login));
$mainname = $check->fetchColumn();
if ($mainname) {}

Если запрос подразумевает получение не одного поля, а нескольких, то вместо fetchColumn() пишем fetch()
Если запрос подразумевает получение нескольких строк, то вместо fetch() пишем fetchAll()
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
RTFM
rowCount() возвращает количество строк, изменённых последним запросом DELETE, INSERT или UPDATE.
Для SELECT не гарантируется возврат правильного значения.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы