是config.php坏文件名?

时间:2012-08-08 11:26:15

标签: php

这个例子来自lynda php beyond basic

的config.php

<?php
    defined('DB_SERVER') ? null : define("DB_SERVER", "localhost");
    defined('DB_USER')   ? null : define("DB_USER", "root");
    defined('DB_PASS')   ? null : define("DB_PASS", "");
    defined('DB_NAME')   ? null : define("DB_NAME", "photo_gallery");
?>

database.php中

<?php
require_once('config.php');

class MySQLDatabase {

private $connection;

function __construct(){
    $this->open_connection();
}

public function open_connection(){
    $this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);

    if (!$this->connection) {
        die("Database connection failed: " . mysql_error());
    } else {
        $db_select = mysql_select_db(DB_NAME, $this->connection);

        if (!$db_select) {
            die("Database selection failed: " . mysql_error());
        }
    }
}

public function close_connection(){

    if(isset($this->connection)) {
        mysql_close($this->connection);
        unset($connection);
    }
}

public function query($sql) {
    $result = mysql_query($sql, $this->connection);
    $this->confirm_query($result);
    return $result;
}



private function confirm_query($result){
    if (!$result) {
        die("Database query failed: " . mysql_error());
    }   
}
}

$database = new MySQLDatabase();

?>

的index.php

<?php
    require_once("../includes/database.php");

    if (isset($database)) {
        echo "true";
    } else {
        echo "false";
    }

?>

现在我的问题当我尝试使用index.php在浏览器上运行它时出现错误 错误说:

  

不推荐使用:在第80行的C:\ xampp \ php \ PEAR \ Config.php中弃用了按引用分配new的返回值

     

不推荐使用:在第166行的C:\ xampp \ php \ PEAR \ Config.php中弃用了按引用分配new的返回值

     

注意:使用未定义的常量DB_SERVER - 在第13行的C:\ xampp \ htdocs \ photo_gallery \ includes \ database.php中假定为“DB_SERVER”

     

注意:使用未定义的常量DB_USER - 在第13行的C:\ xampp \ htdocs \ photo_gallery \ includes \ database.php中假定为“DB_USER”

     

注意:使用未定义的常量DB_PASS - 在第13行的C:\ xampp \ htdocs \ photo_gallery \ includes \ database.php中假定为“DB_PASS”

     

警告:mysql_connect()[function.mysql-connect]:php_network_getaddresses:getaddrinfo failed:没有这样的主机。在第13行的C:\ xampp \ htdocs \ photo_gallery \ includes \ database.php

     

警告:mysql_connect()[function.mysql-connect]:[2002] php_network_getaddresses:getaddrinfo failed:没有这样的主机是已知的。 (尝试通过tcp:// DB_SERVER:3306连接)在第13行的C:\ xampp \ htdocs \ photo_gallery \ includes \ database.php中

     

警告:mysql_connect()[function.mysql-connect]:php_network_getaddresses:getaddrinfo failed:没有这样的主机。在第13行的C:\ xampp \ htdocs \ photo_gallery \ includes \ database.php中   数据库连接失败:php_network_getaddresses:getaddrinfo failed:没有这样的主机。

我通过重命名config.php

以某种方式修复错误

所以这是我的问题,为什么我收到这个错误?是config.php filename的问题? Lynda php超越基础的视频教程没有出现这个错误。

2 个答案:

答案 0 :(得分:1)

您的本地配置存在某种错误,可能是因为您安装了第三方 PEAR ,因此出现错误消息:

  

不推荐使用:在第166行的C:\ xampp \ php \ PEAR \ Config.php中弃用了按引用分配new的返回值

您应该修改系统使用的包和库,因为此错误消息是过时代码的标志(不推荐使用)。就个人而言,我在Windows上使用XAMPP,我的项目在其 htdocs 文件夹中也有config.php,没有任何类似的错误。问题是链接文件是。在我的系统上,第166行的内容如下:

$this->container = new Config_Container('section', 'root');

config.php是调用配置文件的传统和通用名称,它没有问题。使用此名称保留它不会降低安全障碍,只需重命名即可解决此问题。

如果您的项目成功加载配置文件,则将修复其他错误。也:

  

警告:

     

请不要使用mysql_*函数来编写新代码。它们已不再维护,社区已开始deprecation process。请参阅red box

     

相反,您应该了解prepared statements并使用PDOMySQLiThis article应该提供有关决定使用哪个API的一些详细信息。对于PDO,这里是good tutorial

答案 1 :(得分:0)

可能是由于同一目录中存在“config.php”和“Config.php”文件。 在Windows中,文件名不区分大小写。 在linux中,它们是。