我目前正在尝试从我的mysql表格中的某个列创建导航菜单。
好的,所以在我的PHP类数据库文件中,我有这个功能:
public function get_food_type(){
return $this->query("SELECT food_type FROM menu");
}
在另一个文件中,我有以下代码:
<?php
require_once('Includes/wzDB.php');
$content = "<div id=\"menu\">"
. "< nav id=\"food\" >"
. "< ul >"
. $type=wzDB::getInstance()->get_food_type();
print($type);
if($type->num_rows>0){
while($row = $type->fetch_assoc()){
echo "< li >" . htmlspecialchars($row['food_type']) . "< /li >";
}
}
"< /ul >"
. "< /nav >"
. "< /div>";
但是当我尝试运行该文件时,我收到以下错误消息
捕获致命错误:类mysqli_result的对象无法在第8行的C:\ xampp \ new_directory \ htdocs \ Wu_Zen2 \ menu.php中转换为字符串
如何解决此错误?
答案 0 :(得分:2)
mysqli_query()
将对象资源返回到$result
变量,因此它不是字符串。
您需要遍历它,然后使用mysqli_fetch_assoc()
:
$content = "<div id=\"menu\">"
...
while ($row = mysqli_fetch_assoc($result)) {
$content .= "<li>" . htmlspecialchars($row['food_type']) . "</li>";
}
...
$content .= "</ul>"
请勿忘记在循环后使用$content .= "</ul>"
来终止$content
字符串。
在使用$result
变量之前,您应该使用上面的$row = mysql_fetch_array($result)
或mysqli_fetch_assoc()
。
$row = mysql_fetch_array($result);
答案 1 :(得分:1)
您正在尝试连接get_food_type()
与字符串$content
的返回。
要修复你需要终止$ content字符串,然后在while循环中你可以添加到$ content变量(使用.=
)。
$content = "<div id=\"menu\">"
. "< nav id=\"food\" >"
. "< ul >";
$type=wzDB::getInstance()->get_food_type();
print($type);
if($type->num_rows>0){
while($row = $type->fetch_assoc()){
$content .= "< li >" . htmlspecialchars($row['food_type']) . "< /li >";
}
}
$content .= "< /ul >"
. "< /nav >"
. "< /div>";