2016-02-04 111 views
0

我正在使用PHP制作简单的Web应用程序。当我尝试从我的用户名与数据库中的相应id取一个username我得到的错误mysqli_result类的类mysqli_result的对象无法转换为PHP中的字符串

对象无法转换为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。提前致谢。

+1

您正在返回查询对象并对其进行回显。 –

+0

只是做一个print_r($ Naamklant)来看看你正在返回。那么你可以从它回应。 –

回答

0

的问题就在这里: -

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

由于$Naamklant是一个SQL ResultSet对象,所以你不能打印通过echo的价值直接,你需要做的像如下: -

<?php 
$row = $Naamklant->fetch_row(); 
echo "Welkom" . $row['NaamKlant']; 
?> 
+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 
} 
+0

不要担心我正在改善 –

+1

很好听。 –

相关问题