你好,我在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 );