出于某些原因,我得到了一个错误致命错误:当我执行以下调用时,对null上的成员函数prepare()的调用:
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;
}
}
我不确定为什么会出现以下错误。有人对此有什么见解吗?
1条答案
按热度按时间zyfwsgd61#
那是。。。正是你在做的,在null上调用函数。
我们来看看,找出原因!
你在打电话吗
让我们看看康恩是什么。
好的,$conn被分配给$mysql的(createmysql的类)makesqlconnection函数的返回值,让我们看一下。
嗯,它什么也不回。在这种情况下,如果将函数的返回值赋给任何对象,则返回值将变为null。
我们通过追溯错误找到了错误的原因。
要获得最简单的修复,请尝试添加
return
之前$this->connect();