Доброго времени суток. Начал переводить сайт с php 5.6 на 7, запросы делаю такого вида:
$user = $pdo->prepare("SELECT * FROM `users` WHERE `login`=? AND `password`=?");
$user->execute(array($login,$password));
В документациях однако такой способ редко указывается и пишут bindParam. Почему? В чем разница? Как писать правильно? в гугле не забанили, документацию читал, но разницы все равно не понял.
Если можно писать как я пишу, то обязательно ли в execute писать массив? у меня во многих местах одна переменная:
$count_sites = $pdo->prepare("SELECT * FROM `sait` WHERE `category` = ? AND `hosts` > '0' AND `status` = '1'");
$count_sites->execute(array($cat['id']));