我想要的是在数组中返回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()
的示例:
所以这应该可以正常工作:
$row = $res->fetch_assoc();