您好。我的第一个大项目有个小问题。我在代码中使用了很多SQL语句,所有这些语句都能很好地工作,直到现在,我收到了一个错误"试图获取非对象的属性"。Xammp告诉我,错误在第80行。
function btngrp(){
global $connect;
global $listedForums;
global $disableUp;
global $disableDown;
$query = 'SELECT * FROM `categories` ORDER BY `categoryRank` ASC';
$results = $connect -> query($query);
if ($results -> num_rows > 0) {
while ($row = $results -> fetch_assoc()) {
echo '<tr class="headlineCat">
<td colspan="2">' . utf8_encode($row['categoryName']) . '</td>
<td class="text-right" width="10px">
<ul class="posBtn">
<li><button name="categoryOben" class="posUp btnWhite" value="' . $row['categoryID'] . '"><i class="fa fa-caret-up iconPosUp" aria-hidden="true"></i></button></li>
<li><button name="categoryUnten" class="posDown btnWhite" value="' . $row['categoryID'] . '"><i class="fa fa-caret-down iconPosDown" aria-hidden="true"></i></button></li>
</ul>
</td>
</tr>' . listItemByCategoryID($row['categoryID']) . $listedForums;
}
} else {
echo '<tr><td>Keine Foren gefunden</td></tr>';
}}
我真的不知道我目前的错误在哪里。我已经检查了我的SQL语句是否正确。我已经在控制面板中执行了它,并且它成功了,因此,SQL语法必须是正确的。由于我已经使用了很多sql语句,所以我的$connection也必须正常工作。
由于某种原因,这个函数以前是可行的。但就在我完成控制与这些按钮链接的内容的其他功能时(定位和它们的等级(优先级)),错误出现在
经过一些"bug修复尝试"后,我注意到$results为空,无法从查询中获得任何内容
这只是代码的一小部分,"表单"标签和其他重要标签就在这部分下面:)
所以我想语法实际上是正确的,但sql中是否存在语句限制?我已经使用了大约25个SQL语句,或者其他我不知道的东西?
我怀疑这是你的问题。由于SQL错误导致$results为null或false,您将得到关于非对象的错误。
可能是上一个查询(在函数之前)有一个打开的游标。您需要让前一个调用者调用$connect->store_result()
或将所有调用修改为query
以指定MYSQLI_STORE_RESULT
请参阅store_result或查询文档。