1

您好,我在 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:\EasyPHP-12.1\www\pare_aqui_web_service\Dconecta.class.php 中的非对象上调用成员函数 setAttribute()

prepare() 也不起作用

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 回答