Php 致命错误:未定义的类常量';获取协会';在设置PDO连接时
以下是我的PDO连接类:Php 致命错误:未定义的类常量';获取协会';在设置PDO连接时,php,mysql,pdo,Php,Mysql,Pdo,以下是我的PDO连接类: class DB { private static $objInstance; private static $dsn; private static $user; private static $pwd; /* * Class Constructor - Create a new database connection if one doesn't exist * Set to private so no-one can create a new insta
class DB {
private static $objInstance;
private static $dsn;
private static $user;
private static $pwd;
/*
* Class Constructor - Create a new database connection if one doesn't exist
* Set to private so no-one can create a new instance via ' = new DB();'
*/
private function __construct() {}
/*
* Like the constructor, we make __clone private so nobody can clone the instance
*/
private function __clone() {}
private function getConfig()
{
$config = new Config();
$db = $config->getConfig('dbcxn');
DB::$dsn = $db['dsn'];
DB::$user = $db['user'];
DB::$pwd = $db['password'];
}
/*
* Returns DB instance or create initial connection
* @param
* @return $objInstance;
*/
public static function getInstance( ) {
if(!self::$objInstance){
self::getConfig();
self::$objInstance = new \PDO(DB::$dsn, DB::$user, DB::$pwd);
self::$objInstance->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
self::$objInstance->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC);
}
return self::$objInstance;
} # end method
/*
* Passes on any static calls to this class onto the singleton PDO instance
* @param $chrMethod, $arrArguments
* @return $mix
*/
final public static function __callStatic( $chrMethod, $arrArguments ) {
$objInstance = self::getInstance();
return call_user_func_array(array($objInstance, $chrMethod), $arrArguments);
} # end method
}
我已从中获取了上述内容,并对其进行了少量修改,但当我调用该类时,出现以下错误:
致命错误:未定义的类常量“FETCH\u ASSOC”…
有人能告诉我如何解决这个问题吗?因为您没有Config()类 在这里: 你得先上那门课 编辑: 您需要定义配置类 比如:
尝试添加
使用PDO,而不是使用所有反斜杠代码>在你的命名空间声明之后,看看它是否仍然抛出错误-看不出代码有任何错误,所以这只是一个暗中操作。真的感谢FDL,它解决了PDO类未找到的问题,但未定义的类常量错误仍然存在。我添加了常量FETCH_ASSOC=2;错误停止了,但我仍然觉得有问题。您确定安装了PDO吗?:)@TomaszKowalczyk,是的,我确定,从phpinfo()页面。您是否有3000%的把握它会说“\PDO::FETCH_ASSOC
”?没有隐藏的零宽度空间或其他不可见的东西在那里。。。?试着重新打字吗?
$config = new Config();
class Config
{
// construct here
}