我需要帮助将Mysql查询对象转换为字符串

时间:2016-07-05 02:05:11

标签: php mysql

我目前正在尝试从我的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中转换为字符串

如何解决此错误?

2 个答案:

答案 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>";