У меня есть 2 класса: один - это DBobject, который содержит общий запрос базы данных и другие дочерние классы, каждый из которых имеет конкретный запрос к базе данных. Теперь проблема в том, что когда я пытаюсь инициализировать переменную table_name родительского класса, она не инициализируется. Я пробовал много способов, но он показывает, что при выполнении запроса таблица пуста. Вот код:Инициализация переменной родительского класса из дочернего класса
<?php
class DBobject {
public static $table_name="";
public static function find_all(){
global $database;
return self::find_by_sql("SELECT * FROM ".self::$table_name);
}
}
?>
<?php
class Catagory extends DBobject{
public static $table_name ="catagory";
}
?>
?>
Основное применение:
<?php
$cata = Catagory::find_all();
foreach($cata as $catag){
echo "Catagory Name :" . $catag->name."<br/>";
}
?>
Я хочу, чтобы иметь возможность инициализировать тип таблицы следует, что функция find_all DBobject() будет работать дальше. Пожалуйста, помогите мне с этим. Это ошибка, которую я получаю. Noticet, чтобы запрос не содержал имя таблицы.
Database query Failed You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
last SQL query: SELECT * FROM
[Использовать глобальные переменные в классе] (http://stackoverflow.com/questions/11923272/use-global-variables-in -a-class/11923384 # 11923384) – PeeHaa
Вы меня в классах детей –
Нет! Пожалуйста, не изменяйте глобальные переменные пользователя! За исключением ОЧЕНЬ редких случаев. – SteAp