php - 致命错误:未捕获的错误:在 null 上调用成员函数 dbConnect()
问题描述
请帮帮我..我的代码有什么问题。我尝试创建登录表单并验证输入..
致命错误:未捕获的错误:在 null 上调用成员函数 dbConnect()
(开 $this->$db = $this->db->dbConnect();
)。
这是connection.php
<?php
class connection{
public $db_host = 'localhost';
public $db_name = 'login';
public $db_user = 'root';
public $db_pass = 'root';
public function dbConnect()
{
try{
$conn = new PDO("mysql:host=".$this->db_host.";dbname=".$this->db_name,$this->db_user,$this->db_pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo 'ERROR: ' . $e->getMessage();
}
return $this->conn;
}
}
?>
这是 login.php
<?php
include_once('connection.php');
class User{
private $db;
public function __construct(){
$this->$db = new connection();
$this->$db = $this->db->dbConnect();
}
public function isAuthenticated($name, $pass){
if(!empty($name) && !empty($pass)){
$st = $this->$db->prepare("SELECT * FROM loginUser WHERE username =? AND password =?");
$st->bindParam(1, $name);
$st->bindParam(2, $pass);
$st->execute();
if($st->rowCount() == 1){
echo "User Verified";
}else{
echo "Incorrect UserName or Password";
}
}else{
echo "Please Enter User Name And Password";
}
}
}
?>
解决方案
替换这个:
$this->$db = new connection();
$this->$db = $this->db->dbConnect();
有了这个:
$this->db = (new connection())->dbConnect();
和这个:
$this->$db->prepare
有了这个:
$this->db->prepare
实际上,在每个地方你都应该更换:
$this->$db
和
$this->db
推荐阅读
- android - 使用Kotlin显示存储在值/中的数组中的随机字符串?
- numpy - numpy 数组是在 spark 驱动程序还是执行程序上创建的?
- python - 我需要使用 python 在具有 144 列的数据集上创建 corr 矩阵
- c# - Powershell ASP.net 返回某些字段
- c# - 在 Visual Studio for Mac 8.6.2 中运行 C# 控制台应用程序时使用系统终端
- c - 为什么在此代码中使用 fgets 时会跳过用户输入?
- reactjs - 如何使用另一个选择的值在选择中进行过滤
- php - 将表单数据转发到@mail 帐户和 php 表单
- reactjs - 结果组件未正确更新
- javascript - 在android上的html输入字段上使用eventlistener的奇怪行为