我试图在PHP中使用面向对象的样式连接到我的数据库,但浏览器显示以下错误:
致命错误:在null中调用成员函数prepare() /home/brasi862/public_html/lixeira/controller/Controller.php在线 13
看起来__construct函数没有在另一个函数上运行。我已经遇到了几个类似的主题,并按照答案,但没有任何效果。
如果我将__construct的内容放在登录函数中,则代码可以正常工作。
我的代码是:
class Controller{
private $mysqli;
function __construct(){
$mysqli = new mysqli('localhost','root','','mytable');
if($mysqli->connect_error){
print_r('erro: '.$mysqli->connect_error);
}
}
function login($user,$senha){
if($stmt = $mysqli->prepare("SELECT username, senha FROM lixeira WHERE username = ? AND senha = PASSWORD(?)")){
$stmt->bind_param('ss',$user,$senha);
$stmt->execute();
$result = $stmt->get_result();
while($u = $result->fetch_array(MYSQLI_ASSOC)){
$saida = array(
'username' => $u['username'],
'senha' => $u['senha']
);
}
$stmt->store_result();
if($stmt->num_rows > 0){
$saida['success'] = true;
}
else{
$saida['success'] = false;
}
$stmt->close();
}
$mysqli->close();
return $saida;
}
}
代码有什么问题,因此无法在函数中使用连接?