Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Call to a member function query() on a non-object в wordpress

49K
18 марта 2014 года
SevenPC
24 / / 04.06.2012
Код:
global $wpdb;
if (isset($_GET['year'])) {$year =$_GET['year'];
if ($year == '') { unset($year);}}
if (isset($_GET['month'])) {$month =$_GET['month'];
if ($month == '') { unset($month);}}
$data = array();
$i=0;
$queryResult = $wpdb->query("SELECT post_date FROM wp_posts WHERE YEAR(post_date)='$year' AND MONTH(post_date)='$month'");
while($row=mysql_fetch_array($queryResult))
    {
        $data[$i]=$row['post_date'];
        $i++;
    }
// преобрзование массива в данные json
$result = json_encode($data);
echo $result;
При загрузке данной страницы, происходит ошибка: call to a member function query() on a non-object
4
19 марта 2014 года
mike
3.7K / / 01.10.2002
Обязательно прямо так лезть в базу? В wordpress обычно так не делают. Там огромное количество методов. Ваш запрос не просто тривиальный, он есть в любых темах: wp_get_archives()

Ну а по теме:

 
Код:
var_dump($wpdb;);
8
19 марта 2014 года
mfender
3.5K / / 15.06.2005
Из кода не понятно, где используется global $wpdb;
global действует только внутри функций.
8
19 марта 2014 года
mfender
3.5K / / 15.06.2005
Ну и так, между делом: всякий раз писать директиву global в каждой функции - грех какой-то. Нужно или в конструктор ссылку на объект передавать, или в корнях сайта функции поставить. В случае с базой данных я обычно делаю как-то так:


Код:
/* Где-то на старте программы */
$db = new AnotherDBObject();

function DB(){
    global $db;
    return $db;
}

/* Ну и где-то использование */

private function AnotherFunc(){
    DB()->query('SELECT * ........');
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог