Я пытался в течение нескольких дней исправить эту часть своего PHP-кода, но ничего не работает.PHP Замечание: попытка получить свойство не-объекта
Я в основном супер-новый. Довольно много на прошлой неделе я решил попробовать блог с нуля с помощью PHP. Для этого требуется, чтобы я изучал PHP. Итак, следуя учебным пособиям и читающим сайтам, таким как w3schools, я медленно изучал применимый PHP.
Во всяком случае, здесь это часть моего кода я работаю над:
$query = $db->prepare("SELECT post_id, title, body, date_posted, category
FROM posts INNER JOIN categories ON
categories.category_id=posts.category_id ORDER BY
post_id desc limit $start, $per_page");
$query->execute();
$query->bind_result($post_id, $title, $body, $date_posted, $category);
$author = $db->prepare("SELECT username FROM posts INNER JOIN user ON
user.user_id=posts.user_id");
print_r($author->error);
$author->execute();
$author->bind_result($username);
Позвольте мне объяснить. У меня есть три таблицы базы данных: сообщения, категории и пользователь. Большинство сообщений публикуются в «сообщениях», включая category_id и user_id, но не фактические имена категории и пользователя. Я получаю их из двух других таблиц. $ db использует mysqli.
$ query часть вышеуказанного кода работает отлично. Строка подготовки $ author - это то, где у меня проблема. Я написал эту строку на основе строки подготовки запроса $ query.
Но когда я запускаю код, я получаю «Уведомление: попытка получить свойство не-объекта». Это приводит к тому, что функция $ author-> execute() не работает и создает ошибку: «Неустранимая ошибка: вызов функции-члена execute() для не-объекта».
Так что, так как я мега-newb, я предполагаю, что исправление - это что-то действительно простое, что, вероятно, связано с моим незнанием PHP. Кто-нибудь есть идеи или предложения? Заранее спасибо за помощь.
дубликат http://stackoverflow.com/a/15447204/285587 –
Использование вашего предложения о добавлении «или trigger_error ($ db-> error)», появляется сообщение об ошибке: Примечание: команды не синхронизированы; вы не можете запустить эту команду сейчас. Я изучаю, что это значит прямо сейчас. Похоже, у вас просто не может быть двух запросов назад? – Homer