可捕获的致命错误:类mysqli_result的对象无法在第16行转换为字符串

时间:2017-02-14 10:19:34

标签: php mysql

我真的不知道如何解决这个问题,有什么帮助吗?

$login_email = $_POST['login_email'];
$login_password = $_POST['login_password'];

$sql = "SELECT * FROM utilizador WHERE email ='$login_email' and password = '$login_password'";

$resultado = mysqli_query($connection, $sql);

echo $resultado;

这是我得到的错误

  

可捕获的致命错误:类mysqli_result的对象不可能   转换为字符串   第16行的C:\ xampp \ htdocs \ epbjc_roleplay_site \ php \ login.php

3 个答案:

答案 0 :(得分:1)

错误在于:

echo $resultado;

$ resultado是result-set object of array type,您无法以这种方式打印。

你应该先做一个while循环,把它的记录读成$ row:

while($row = mysqli_fetch_assoc($resultado))
{
    print_r($row);
    // Or print any specific column like:
    echo $row['col_name'];
}

答案 1 :(得分:0)

你正试图回应一个mysqli_result。你只能回应字符串。

所以改变这一行:

echo $resultado;

对此:

if($resultado && $resultado->num_rows > 0){
   $row = $resultado->fetch_assoc();
   echo "E-Mail and password matched. Found e-mail was: ". $row['email'];
} else {
   echo "No matches were found";
}

答案 2 :(得分:0)

正如我告诉你的那样,我们无法直接回应$ resultado我们需要使用while循环从数据库中获取数据

$login_email = $_POST['login_email'];
$login_password = $_POST['login_password'];

$sql = "SELECT * FROM utilizador WHERE email ='$login_email' and password = '$login_password'";
$resultado = mysqli_query($connection, $sql);

while($row = mysqli_fetch_assoc($resultado)) {
    $name =$row['databsefieldname'];
    $date =$row['databsefield name for date'];
    //this is just example fetch you data this way 
} 
echo $name;
echo $date;