php - 可捕获的 fatal error :第14行的C:\xampp\htdocs\PokemonFight\pokemon.php中无法将类mysqli_result的对象转换为字符串

标签 php mysql session

我知道这个问题已经被问过很多次了。

但是,我找不到能帮助我解决当前问题的方案。

这是我的代码:

<?php 
session_start();
$db = mysqli_connect("localhost", "root", "password", "authentication");

if (isset($_POST['login_btn'])) {

    $username = mysqli_real_escape_string($db,$_POST['username']);
    $password = mysqli_real_escape_string($db,$_POST['password']);

    $password = md5($password);
    $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $result = mysqli_query($db, $sql);

    $idsql = "SELECT id FROM users WHERE username='$username'";
    $userid = mysqli_query($db, $idsql);



    if (mysqli_num_rows($result) == 1) {
        $_SESSION['message'] = "You are now logged in";
        $_SESSION['username'] = $username;
        $_SESSION['userid'] = $userid;
        header("location: home.php");
    }else{
        $_SESSION['message'] = "Username/password combination incorrect";
    }
}
?>


_SESSIONusername变量确实运行良好,没有任何问题。但是,当我为_SESSION回显userid时,会收到错误消息。我尝试了许多不同的解决方案,但似乎找不到适合该问题的解决方案。

这是错误代码:


  “可捕获的致命错误:第14行的C:\ xampp \ htdocs \ PokemonFight \ pokemon.php中无法将类mysqli_result的对象转换为字符串”
  
  它引用的代码的第14行也是:
  
    


关于如何使它回显正确的用户ID,我一无所知。

最佳答案

似乎您正在尝试将mysqli_query对象转换为字符串。

$idsql = "SELECT id FROM users WHERE username='$username'";
$userid = mysqli_query($db, $idsql);


您需要获取结果,然后从结果中提取id字段。然后使用它附加到$_SESSION变量。

例如:

$idsql = "SELECT id FROM users WHERE username='$username'";
$userid = mysqli_query($db, $idsql);
$userid = mysqli_fetch_row($userid);
$userid = $userid[0];


然后将其填充到$ _SESSION变量中。
否则,当您尝试使用$_SESSION['userid']输出echo的结果时,它将失败,因为它正在尝试执行对象到字符串的转换。

您也可以尝试print_r($_SESSION['userid']);看到此效果。

关于php - 可捕获的 fatal error :第14行的C:\xampp\htdocs\PokemonFight\pokemon.php中无法将类mysqli_result的对象转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39217746/

相关文章:

php - 从 PHPMYADMIN 导出和导入数据

PHP:删除多个子标签

c# - ASP.NET MVC 中的 session 超时警告

php - 根据单击的按钮更新表时的情况语句?

mysql脚本bash循环

mysql - 不小心卸载了mysql服务器

javascript - 如何在同一个函数中多次将数据推送到javascript中的同一个数组?

Java/JSP/ session

node.js - session 从express bat中删除,而不是从socket.io中删除

php - 如何从 PHP 中的 URL 中删除 http ://, www 和斜杠?