【发布时间】:2013-03-05 14:04:32
【问题描述】:
我这几天一直在尝试修复这部分 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);
让我解释一下。我有 3 个数据库表:帖子、类别和用户。大多数帖子信息都在“帖子”中,包括 category_id 和 user_id,但不是类别和用户的实际名称。我从另外两张桌子上得到这些。 $db 使用 mysqli。
上述代码的 $query 部分运行良好。 $author prepare 行是我遇到问题的地方。我根据有效的 $query prepare 行编写了该行。
但是当我运行代码时,我得到“注意:试图获取非对象的属性”。这会导致 $author->execute() 不起作用并产生错误:“致命错误:调用非对象上的成员函数 execute()。”
再说一次,由于我是一个超级新手,我认为修复非常简单,可能与我对 PHP 的无知有关。有没有人有任何想法或建议?提前感谢您的帮助。
【问题讨论】:
-
使用您添加“或 trigger_error($db->error)”的建议,我收到错误消息:注意:命令不同步;您现在无法运行此命令。我现在正在研究这意味着什么。看起来您不能同时进行两个查询?