函数返回布尔值而不是字符串


Function returns boolean not string

我想要的是在数组中返回MYSQL查询,但是我的代码返回bool(true)。
下面是code.php

中的代码
require('model.php');
$id = $_POST['id'];
$password = $_POST['password'];
$user = new user();
$row = $user->check_user($id, $password);
var_dump($row);
下面是model.php 中的代码
class config {
    public $dbhost = "localhost";
    public $dbuser = "root";
    public $dbpass = "";
    public $dbused = "dbname";
    function dbconn() {
        $conn = mysqli_connect($this->dbhost,$this->dbuser,$this->dbpass,$this->dbused);
        if(mysqli_connect_errno()) {
            printf("Connection failed: " . mysqli_connect_error());
            exit();
        }
        return $conn;
    }
}
class user {
    function check_user($id, $pass) {
        $config = new config();
        $conn = $config->dbconn();
        $query = $conn->prepare("SELECT id, password, status FROM e_users WHERE id = ? AND password = ?");
            $query->bind_param('is', $id, $pass);
            try {
                $query->execute();
                return $query->fetch();
            } catch(PDOException $e) {
                die($e->getMessage());
            }
    }
}

我认为问题是在$query->fetch();,因为我尝试了return 'test';,它工作得很好。甚至返回一个数组也可以。

有人能帮我吗?

正如The Blue Dog指出的,fetch()返回一个状态标志,而不是行本身。但是fetch_assoc()将返回一行。

看这里:

http://php.net/manual/en/mysqli-stmt.fetch.php

如果您使用fetch,则需要绑定变量:

$stmt->bind_result($mySelectedValue_1, $mySelectedValue_2);

以下是fetch_assoc()的示例:

http://php.net/manual/de/mysqli.quickstart.prepared-statements.php

所以这应该可以正常工作:

$row = $res->fetch_assoc();