I';m在php-mysql中的pdo有一个错误;调用非对象上的成员函数setAttribute();


I'm having an error with the pdo in php mysql "Call to a member function setAttribute() on a non-object"

你好,我在PHP MySQL中的PDO有一个错误,我不知道该怎么办。有配置吗?使用easyphp感恩

连接文件.php

<?php
abstract class Conexao
{
    const USER = "root";
    const PASS = "";
    const DB   = "pare_aqui_db";
    const HOST = "localhost";
    private static $instancia = null;
    private static function conectar()
    {
        try
        {
            if(self::$instancia == null):
                $sqlPDO = "mysql:host=".self::HOST.";dbname=".self::DB;
                self::$instancia == new PDO( $sqlPDO , self::USER , self::PASS );
                self::$instancia->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                self::$instancia->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
            endif;
        }
        catch(PDOException $erro_conecta){echo "erro".$erro_conecta->getMessage();}
        return self::$instancia;
    }
    protected static function getDB()
    {
        return self::conectar();        
    }
}
 ?>

在chrome中测试页面时出错致命错误:在第17行的C:''EasyPP-12.1''www''pare_aqui_web_service''Dconecta.class.php中的非对象上调用成员函数setAttribute()

prepare()也不起作用

self::$instancia == new

未设置变量。因此,self::$instancia->setAttribute会触发错误,因为您在非对象上执行(NULL)->setAttribute

这显然是一个拼写错误,但只是以防万一:==是比较器运算符;您真正要查找的是=,它是赋值运算符;因此正确的代码是:

self::$instancia = new PDO( $sqlPDO , self::USER , self::PASS );