无法将PHP应用程序与MySQL

时间:2018-04-23 09:44:22

标签: php mysql mysqli

从朋友那里,我得到了一个包含PHP和HTML文件的网站(zip文件)。我也从他那里得到了一个SQL脚本。现在我要做的是在localhost(Xampp apache服务器)上运行应用程序并且网站确实加载,但看起来我无法连接到数据库。(我确实导入了SQL脚本并且它有效,但是我仍然收到此错误)这是一个错误,例如我在主页上收到的信息:

Connection failed: SQLSTATE[HY000] [1045] Access denied for user 'dewaai'@'localhost' (using password: YES)
Notice: Undefined index: logged in C:\xampp\htdocs\deWaai\includes\header.php on line 14

数据库的名称是'dewaai' 用户名是:root 我认为没有密码......

这是connection.php文件:

<?php
session_start();

include "db.php";

$db = new db();
$db->setDB("localhost", "dewaai", "dewaai", "dewaai");
$db->connect();

?>

这些是db.php文件中的数据库函数:

<?php
class db {
    private $conn;
    private $servername;
    private $dbuser;
    private $dbpass;
    private $dbname;

    function setDB($servername, $dbuser, $dbpass, $dbname) {
        $this->servername = $servername;
        $this->dbuser = $dbuser;
        $this->dbpass = $dbpass;
        $this->dbname = $dbname;
    }

    function connect() {
        try {
            $this->conn = new PDO("mysql:host=$this->servername;dbname=$this->dbname", $this->dbuser, $this->dbpass);
            // set the PDO error mode to exception
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
        catch(PDOException $e)
        {
            echo "Connection failed: " . $e->getMessage();
        }
    }

有谁知道如何解决这个问题,以便数据库运行应用程序? 我真的不知道为什么我会收到这个错误。 感谢任何形式的帮助,thx

2 个答案:

答案 0 :(得分:1)

您的用户名或密码有问题。 $ db-&gt; setDB(“localhost”,“root”,“”,“dewaai”); 试试这个它可以帮助你连接数据库

答案 1 :(得分:0)

问题清楚地说明错误消息指出您在connection.php文件中给出的用户名和密码不正确。

数据库连接的格式是 $ db-&gt; setDB(数据库主机IP地址或DNS名称用户名密码 DatabaseName );

根据你所说的我认为connection.php文件应该是

<?php
session_start();

include "db.php";

$db = new db();
$db->setDB("localhost", "root", "", "dewaai");
$db->connect();

?>

我认为您的PDO连接也可能存在问题。它应该是

$this->conn = new PDO('mysql:host='.$this->servername.'; dbname='.$this->dbname, $this->dbuser, $this->dbpass);

希望这有帮助。