-1
<?php
    class Database_Object
    {
        protected static $DB_Name;
        protected static $DB_Open;
        protected static $DB_Conn;

        protected function __construct($hostname, $username, $password, $database)
        {
            self::$DB_Name = $database;
            self::$DB_Conn = mysqli_connect($hostname, $username, $password, $database);
            if (!self::$DB_Conn) { die('Critical Stop Error: Database Error<br />' . mysqli_error()); }
            mysqli_select_db(self::$DB_Name, self::$DB_Conn);
        }

        private function __clone() {}

        public function __destruct(){}

    }

    class DB extends Database_Object
    {
        public static function Open($hostname = 'localhost', $username = 'root', $password =' ', $database = 'anil1')
        {
            if (!self::$DB_Open)
            {
                self::$DB_Open = new self($hostname, $username, $password, $database);
            }
            else
            {
                self::$DB_Open = null;
                self::$DB_Open = new self($hostname, $username, $password, $database);
            }
            return self::$DB_Open;
        }

        public function qry($sql, $return_format = 0)
        {
            $query = mysqli_query($sql, self::$DB_Conn) OR die(mysqli_error());
            switch ($return_format)
            {
                case 1:
                    $query = mysqli_fetch_row($query);
                    return $query;
                    break;
                case 2:
                    $query = mysqli_fetch_array($query);
                    return $query;
                    break;
                case 3:
                    $query = mysqli_fetch_row($query);
                    $query = $query[0];
                    return $query;
                default:
                    return $query;
            }
        }
    }
    //$dbconnect = new DB_Class();
    $DB = DB::Open();
$result = $DB->qry(" {SELECT Firstname FROM persons} ;");
?>

嗨警告:mysqli_connect()[function.mysqli-connect]:(28000/1045):C:\ xampp \ htdocs \ Anil \ object.php中用户'root'@'localhost'(使用密码:YES)的访问被拒绝在第 12 行

警告:mysqli_error() 需要 1 个参数,在第 13 行的 C:\xampp\htdocs\Anil\object.php 中给出 0 严重停止错误:数据库错误

4

5 回答 5

0

用下面的行替换你的public static function Open($hostname = 'localhost', $username = 'root', $password =' ', $database = 'anil1') 这行代码

public static function Open($hostname = 'localhost', $username = 'root', $password ='', $database = 'anil1')

我认为它现在会起作用。

于 2013-08-07T07:16:28.153 回答
0

改变

$password = ' '

$password = '' // if your are not using any password.

在你的

public static function Open( //parameters  )
于 2013-08-07T07:11:29.420 回答
0

检查为您的 root 帐户设置的密码。

您正在调用静态函数

public static function Open($hostname = 'localhost', $username = 'root', $password =' ', $database = 'anil1')

像这样:

$DB = DB::Open();

因此使用默认密码字符串(您设置为“”)。根据您的密码更改它。

顺便说一句,永远不要在没有密码的情况下离开您的 MySQL root 帐户。

于 2013-08-07T07:12:29.020 回答
0

该警告Access denied for user 'root'@'localhost' (using password: YES)意味着与数据库的连接失败,因为您尝试使用错误的用户名或密码进行连接。

警告mysqli_error() expects exactly 1 parameter, 0 given意味着该函数需要 1 个参数(请参阅文档),但您没有提供任何参数。它期望mysqli_connect()作为参数返回的连接标识符。

于 2013-08-07T07:12:29.553 回答
0

我认为您在 localhost 上的 root 用户的密码为空。但是方法中的默认值Open不为空(它是一个空格)。

public static function Open($hostname = 'localhost', $username = 'root', $password ='', $database = 'anil1') {
于 2013-08-07T07:13:16.423 回答