我的PHP功能非常简单。它只是使用预准备语句来查询数据库,但我无法理解为什么它不起作用。
即使我已将$conn
声明为私有变量并使用$this->conn
<?php
require_once 'constants.php';
class Mysql {
private $conn;
function ___construct(){
$this->conn = new mysqli (DB_SEVER, DB_USER, DB_PASSWORD, DB_NAME);
if (!$this->conn){
die('There was a problem connecting to the database!');
}
}
function verify_name_and_pass ($un, $pwd) {
$query = "SELECT * FROM users
WHERE username = ? AND user_password = ?
LIMIT 1";
if ($stmt = $this->conn->prepare($query)) {
$stmt->bind_param('ss', $un, $pwd);
$stmt->execute();
if ($stmt->fetch()) {
$stmt->close();
return true;
}
}
}
}
答案 0 :(得分:2)
问题在于您的__construct()
功能。至少有一个拼写错误:
__construct()
拼写为2 _
,拼写为3。DB_SERVER
代替DB_SEVER
。此外,一旦确定$this->conn
不是null
,您应该通过阅读$this->conn->connect_errno
并确保0
确认连接是否已正确建立。