我想要的是在数组中返回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';
,但效果很好。即使返回一个数组工作正常。
任何人都可以帮助我吗?
答案 0 :(得分:1)
正如蓝狗指出的那样,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();