Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在null上调用成员函数prepare(),不确定原因_Php_Mysql - Fatal编程技术网

Php 在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

由于某些原因,我得到了错误致命错误:当我执行以下调用时,对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;
     }
}

我不确定为什么会出现以下错误。有人对此有什么见解吗?

那就是。。。正是您所做的,在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贪婪,我喜欢。哇。。。不敢相信我跳过了。非常感谢。