Я пишу класс, который содержит массив других объектов, которые он генерирует, запрашивая базу данных.Каждый экземпляр этого класса выполняет почти идентичный запрос, поэтому я подумал о том, чтобы установить совместно подготовленный обработчик подготовленного оператора, и каждый класс просто привязал бы к нему свою переменную.Вот фрагмент кода:
class CQuestion
{
// this is line 16
static private $sthAns = SPDO::prepare(
'SELECT * FROM answers WHERE answers.q_id = :qid'
);
// constructor, other functions, etc.
private function GetAnswers()
{
self::$sthAns->bindParam(':qid', $this->m_iQID, PDO::PARAM_INT);
self::$sthAns->execute();
}
}
Я знаю, что это не работает, потому что я получаю следующую ошибку:
Ошибка разбора: синтаксическая ошибка, непредвиденная '(', ожидающая ','или ';' в C: \ xampp \ htdocs \ mbtest \ CQuestion.php в строке 16
Кто-нибудь знает способ реализовать это без необходимости сбрасывать подготовленный оператор для каждого экземпляра класса?
В случае, если есть какая-то путаница, я заключил PDO в свой собственный синглтон (SPDO), который настраивается через INI-файл. Вот почему я получаю доступ к prepare через статическую ссылку.