как сказано в документации , execute()
возвращает логическое значение. взгляните на примеры для fetch () , чтобы узнать, как использовать PDO.
В вашем случае код должен выглядеть следующим образом:
$stmt = $db->prepare( 'SELECT `last_visit` FROM `visitors` WHERE `ip` = :ip' );
$stmt->bindParam(':ip', $arr_ip);
$stmt->execute();
if($row = $stmt->fetch()){
$last_visit = $row['last_visit'];
}else{
// whatever you like to do if there's no result...
}
EDIT:
дополнительная информация в ответ на ваш комментарий:
Для UPDATE
или DELETE
вы можете сделать однострочную, как ваш пример, потому что вам может не понадобиться результат (или просто true
/ false
, чтобы увидеть, был ли запрос успешным) .
Для SELECT
вам нужно fetch()
результат. Вы можете опустить bindParam()
и указать параметры для выполнения, как вы пытались, но без fetch()
вы не получите свои результаты.