Ошибка разбора: синтаксическая ошибка, неожиданное '$_GET' (T_VARIABLE) в

Когда я пытаюсь загрузить "идентификатор" из URL, кажется, что он не работает. Есть причина почему? Заранее спасибо за помощь!

<?php

class Poll{

    private $db;
    private $presidentid = $_GET['id'];

    public function __construct($db){
        $this->db = $db;
    }

    public function getPollData(){
        $sql = "SELECT poll_question, yes, no FROM poll WHERE poll_id = $presidentid";
        $statement = $this->db->prepare($sql);
        $statement->execute();
        $pollData = $statement->fetchObject();
        return $pollData;
    }

}

?>

2 ответа

Решение

Мы не помещаем переменную в подготовленный запрос.

$sql = "SELECT poll_question, yes, no FROM poll WHERE poll_id = :id";

$statement = $this->db->prepare($sql);
$statement->bindParam(':id', $this->presidentid);
$statement->execute();

см.: http://php.net/manual/fr/pdo.prepare.php

private $presidentid = $_GET['id'];

Замените вышеуказанную линию на нижнюю, она будет работать нормально,

class Poll{

    private $db;
    private $presidentid;
    public function __construct($db){
            $this->db = $db;
            $this->presidentid = $_GET['id'];
        }

Я объясню, почему вы не должны использовать как private $presidentid = $_GET['id']; как только ваша проблема решена.

Другие вопросы по тегам