1

こんにちは、PHP MySQLのPDOでエラーが発生しましたが、どうすればよいかわかりません。設定はありますか?easyphp感謝を使用してください

conections.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:\ EasyPHP-12.1 \ www \ pare_aqui_web_service \ Dconecta.class.phpの非オブジェクトでメンバー関数setAttribute()を呼び出す

準備()も機能しません

4

1 に答える 1

2
self::$instancia == new

変数を設定していません。したがって、非オブジェクトでself::$instancia->setAttribute実行しているため、エラーがトリガーされます。(NULL)->setAttribute

これは明らかにタイプミスでしたが、念のために:==コンパレータ演算子です。あなたが本当に探している=のは、代入演算子です。したがって、正しいコードは次のとおりです。

self::$instancia = new PDO( $sqlPDO , self::USER , self::PASS );
于 2013-02-07T19:42:06.900 に答える