PHP PDO SQLSTATE [HY000] [1044]用户访问被拒绝'' localhost'到数据库'事件'

时间:2016-05-23 22:40:57

标签: php mysql pdo

当我使用MySQLi连接数据库时,一切正常,但是使用PDO或CI数据库方法,我收到此错误:SQLSTATE [HY000] [1044]用户访问被拒绝'&#39 ; @'本地主机'数据库'事件'。

try {
            $link = new PDO("mysql:host=localhost;dbname=events;");
            $link->setAttribute(PDO::ATTR_MODE, PDO::ERR_MODE_EXCEPTION);

            //create statement;
            $statement = $link->prepare($sql);
            $statement->bindParam(":username", $login_request["username"]);
            $statement->bindParam(":password", $login_request["password"]);
            $statement->execute();

            $rows = $statement->fetchColumn();

            return ($rows == 1) ? true : false;
        }
        catch(PDOEXCEPTION $e){
            echo $e->getMessage();
        }

1 个答案:

答案 0 :(得分:1)

尝试像这样连接。 将它放在一个单独的文件connection.php中,并将其包含在您运行查询的每个页面中

try{
$connect = new PDO('mysql:host=localhost;dbname=YOUR_DB_NAME;charset=utf8', 'USERNAME', 'PASSWORD',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
    die('Error connecting to database');
}

然后您可以在每个页面中运行查询

$stmt = $connect->prepare("SELECT * FROM table WHERE id=:id");
$stmt->bindParam(':id', $id);
$stmt->execute();