У вас есть несколько проблем здесь:
<?php echo $get_quota->daily_a; ?>
Эта строка ссылается на $get_quota
переменную и ищет поле члена daily_a
. Попробуйте следующее:
<?php echo "Quota is:".var_export($get_quota->daily_a,true); ?>
Это покажет, что это просто пустая переменная.
Однако также отметить:
$get_quota = Admin::get_quota();
$sql = "SELECT * FROM quota";
$get_quota = Admin::find_by_sql($sql);
Здесь вы вызываете два отдельных методов из Admin
и установки переменной $get_quota
к результату. Второй перезаписывает первый. Поэтому метод get_quota()
не помогает нам здесь: нам нужно знать, что возвращает ваш метод find_by_sql()
.
EDIT (Post новый код добавляется на вопрос)
Вы можете осуществить регистрацию/вторя внутри функции вы проблемы с:
public static function find_by_sql($sql="") {
global $database; //Note this is bad practice (1).
$result_set = $database->query($sql);
echo "Result Set: ".var_export($result_set,true)."\n";//This should return something if you're getting something back from the database. Also, remove this for runtime (obviously).
if (count($result_set) <= 0) { //constraint checking is always good! And cheap!
error_log("An unexpected number of rows (0) was received from the database for query='".$sql."'.");
}
$object_array = array();
while ($row = $database->fetch_array($result_set)) {
$object_array[] = self::instantiate($row); //Ensure that the instantiate function returns something!
}
echo "Object Array: ".var_export($object_array, true)."\n";//double-check your instantiate function is working
return $object_array;
}
На основе этого кода, ваша проблема вероятно, с помощью функции-экземпляра; если он ничего не возвращает, $object_array
, вероятно, пуст. (Но не null!).
(1) Вам следует избегать захвата глобальных переменных, подобных этому. Вместо этого создайте экземпляр класса, который поддерживает и управляет вашим подключением к базе данных. Затем сделайте свою функцию find_by_sql
нестатической и укажите поле члена, указывающее на вашу базу данных.
Почему статическая функция должна ссылаться на это/я? –
@ Zach Leighton: как бы вы назвали метод иначе? – zerkms
Вы дважды получаете квоту. Что в стороне, вы пытались выдать запрос вручную? Что ты получил ? Что вы ожидаете от 'find_by_sql()'? Какова структура таблицы 'quota'? Так много деталей не хватает ... –