Функция getq класса qu должна быть помечена модификатором открытого доступа.
В противном случае следующая строка не будет выполнена, поскольку getq является частной функцией
$data = qu::getq("22");
Второй и выпуск в этом коде
function quconn (&$db){
$this->db = &$db;
}
Когда вы вводите функцию quconn из статического содержимого $, это недоступно.
Вместо этого используйте self :: $ db.
Для класса qu следует та же структура класса db, которая является классом одноэлементного множества.
Я также предлагаю выяснить разницу между $ this и self, статическим состязанием и т. Д.
Официальная документация Php предлагает многое о
Также я не думаю, что вам нужен метод передачи по ссылке:
попробуйте переписать функцию quconn следующим образом:
function quconn ($db){
self::$db = $db;
}
Кстати, я не думаю, что класс qu хорошо "спроектирован"
Даже если вы исправите проблему передачи по ссылке, эта инструкция не будет работать:
$stmt = self::quconn()->prepare($sql);
Вы вызываете функцию prepare для результата вызова quconn, который ничего не возвращает ...
Я предлагаю:
$stmt = db::connect()->prepare($sql);
это получить экземпляр PDP и вызвать метод prapare ....