mysqli_result类的对象无法在PHP中转换为字符串

时间:2016-02-04 16:13:54

标签: php mysqli

我正在使用PHP创建一个简单的Web应用程序。当我尝试使用相应的username从我的用户名数据库中获取id时出现错误

  

mysqli_result的对象无法转换为string

这是我的代码。

public function get_gebruiker_id_by_name($Gebruiker) {
    $Gebruiker = $this->real_escape_string($Gebruiker);

    $Gebruikerid = $this->query("SELECT klantid FROM klanten WHERE Gebruikersnaam = '" . $Gebruiker . "'");
    if ($Gebruikerid->num_rows > 0){
        $row = $Gebruikerid->fetch_row();
        return $row[0];
    } else
        return null;
    }
    public function get_gebruikersnaam_by_id($Gebruikersid) {
        return $this->query("SELECT NaamKlant FROM klanten WHERE klantid=" . $Gebruikersid);
    }

并调用此函数:

$GebruikersID = (BestellingDB::getInstance()->get_gebruiker_id_by_name($_SESSION['Username']));
$Naamklant = (BestellingDB::getInstance()->get_gebruikersnaam_by_id($GebruikersID));

echo "Welkom" . $Naamklant;

我正在使用会话来保护username。提前谢谢。

2 个答案:

答案 0 :(得分:0)

您正在查询查询对象并回显它。

    <?php 
    print_r( $Naamklant); // instead  of echo
    ?>

或者

public function get_gebruikersnaam_by_id($Gebruikersid) {
    $query = $this->query("SELECT NaamKlant FROM klanten WHERE klantid=" . $Gebruikersid);
//return a string (id) here
}

答案 1 :(得分:0)

问题在于: -

$Naamklant = (BestellingDB::getInstance()->get_gebruikersnaam_by_id($GebruikersID));
<?php 
  echo "Welkom" . $Naamklant;
?>

由于$Naamklant是一个SQL结果集对象,因此您无法直接通过echo打印它的值,您需要执行以下操作: -

<?php
 $row = $Naamklant->fetch_row();
 echo "Welkom" . $row['NaamKlant'];
?>