Php 在null上调用成员函数prepare(),不确定原因
由于某些原因,我得到了错误致命错误:当我执行以下调用时,对null上的成员函数prepare()的调用:Php 在null上调用成员函数prepare(),不确定原因,php,mysql,Php,Mysql,由于某些原因,我得到了错误致命错误:当我执行以下调用时,对null上的成员函数prepare()的调用: include_once(createMySQL.php); $mySql = new createMySQL(); $conn = $mySql->makeSQLConnection(); $entry = $conn->prepare("INSERT INTO thisTable (val1) VALUES (:val)"); $entry->bindParam(":v
include_once(createMySQL.php);
$mySql = new createMySQL();
$conn = $mySql->makeSQLConnection();
$entry = $conn->prepare("INSERT INTO thisTable (val1) VALUES (:val)");
$entry->bindParam(":val", $val);
$entry->execute();
这是我的createMySQL类
class createMySQL{
function makeSQLConnection(){
$this->connect();
}
private function connect(){
$name = "localhost";
$db = "thisDatabase";
$username = "root";
$password = "";
try{
$conn = new PDO("mysql:host=$name; dbname=$db; charset=UTF8", $username, $password);
}catch(PDOException $e){
die("PDOException:" . $e->getMessage());
}
//echo "success";
return $conn;
}
}
我不确定为什么会出现以下错误。有人对此有什么见解吗?那就是。。。正是您所做的,在null上调用函数 让我们看看,并试图找到原因 你在打电话吗
$entry = $conn->prepare("INSERT INTO thisTable (val1) VALUES (:val)");
让我们看看$conn是什么
$conn = $mySql->makeSQLConnection();
< P> >,$CONN被指定返回$MySQL的值(CeaMeMySQL的类)MAKESQLoad函数,让我们来看一下。
function makeSQLConnection(){
$this->connect();
}
嗯,它不返回任何东西。在这种情况下,如果将函数的返回值赋给任何对象,它将变为null
我们通过追溯错误找到了错误原因
对于最简单的修复,请尝试在
$this->connect()之前添加return
您的makeSQLConnection()
方法没有return
关键字。必须说,解释得很好。爱的时候人们会这样勤勉地回答:)+1贪婪,我喜欢。哇。。。不敢相信我跳过了。非常感谢。