machetero
@machetero
gotlib.me

PDO при bindValue выдаёт false?

Забил все параметры через bindValue() т.к. уже знаю что в execute нельзя передавать числа.
$priceFrom = 1;
$priceTo = 10;
$productName = 'name';
$manufacturer = 'man';

$con = new \PDO($dsn,'root','');
$stmt = $con->prepare("SELECT count(*) as amount FROM products p WHERE p.name = :productName AND p.manufacturer = :manufacturer AND p.price >= :priceFrom AND p.price <= :priceTo ");
$stmt->bindValue(':priceFrom',(int)$priceFrom,\PDO::PARAM_INT);
$stmt->bindValue(':priceTo',(int)$priceTo,\PDO::PARAM_INT);
$stmt->bindValue(':productName',$productName,\PDO::PARAM_STR);
$stmt->bindValue(':manufacturer',$manufacturer,\PDO::PARAM_STR);
$res = $stmt->execute();
$result = $res->fetch(\PDO::FETCH_ASSOC);
var_dump($result);

Вылетает с ошибкой:
Fatal error: Uncaught Error: Call to a member function fetch() on boolean in
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
При чём тут bindValue?
execute возвращает всегда boolean. php.net/manual/en/pdostatement.execute.php
Разумеется у bool нет методов, это не объект.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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