如何在PHP中连接到PDO

如何在PHP中连接到PDO,php,mysql,pdo,Php,Mysql,Pdo,你好,两周前我使用了Mysqli,一切正常,但现在我使用PDO,有很多问题。这是其中之一。我在MYSQLi类中使用了连接到MySQL的下一个设置: self::$data['host'] = 'localhost'; self::$data['user'] = 'mysql'; self::$data['pass'] = 'mysql'; self::$data['db'] = '123'; 它成功了。 但当我用它在这个: private static function connect()

你好,两周前我使用了Mysqli,一切正常,但现在我使用PDO,有很多问题。这是其中之一。我在MYSQLi类中使用了连接到MySQL的下一个设置:

self::$data['host'] = 'localhost';
self::$data['user'] = 'mysql';
self::$data['pass'] = 'mysql';
self::$data['db']   = '123';
它成功了。 但当我用它在这个:

private static function connect()
    {
        if(!self::$connection)
        {
            try
            {
                self::$connection = new \PDO('mysql:host='.self::$data['host'].';dbname='.self::$data['name'], self::$data['user'], self::$data['pass']);
                self::$connection -> setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
                self::$connection -> exec('SET NAMES utf8');
            }
            catch (PDOException $e)
            {
                die('Ошибка подключения к БД: '.$e->getMessage());
            }
        }
    }
PHP调用错误:

用户“@”localhost的SQLSTATE[HY000][1045]访问被拒绝(使用密码:否)


对不起,我是PDO的初学者

错误提示您的登录名和密码错误。您检查过它们吗?您输入了错误的数据库凭据。您的数据库名称在
self::$data['DB']
中,在您使用的dsn字符串中
self:$data['name']
。你确定吗?你的连接代码错了。请阅读。有了正确的错误报告,你就可以自己发现那个愚蠢的打字错误了。
newpdo($dsn,$username,$password)
只有少数数据库类型支持
$dsn
本身中的用户名和密码。谢谢。你的评论很有用
self::$data['host'] = 'localhost';
self::$data['user'] = 'mysql';
self::$data['pass'] = 'mysql';
self::$data['db']   = '123';

private static function connect()
{
    if(!self::$connection)
    {
       try
       {
          self::$connection = new PDO('mysql:host='.self::$data['host'].';dbname='.self::$data['db'], self::$data['user'], self::$data['pass']);
            // just correct your database name variable like as above
            self::$connection -> setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
            self::$connection -> exec('SET NAMES utf8');
        }
        catch (PDOException $e)
        {
            die('Ошибка подключения к БД: '.$e->getMessage());
        }
    }
}