这个例子来自 lynda php 超越基本
配置.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");
?>
数据库.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();
?>
索引.php
<?php
require_once("../includes/database.php");
if (isset($database)) {
echo "true";
} else {
echo "false";
}
?>
现在这是我尝试索引时的问题.php在浏览器上运行它,我收到错误错误 说:
已弃用:在 C:''xampp''php''PEAR''Config.php 第 80 行中不推荐通过引用分配 new 的返回值
已弃用:在 C:''xampp''php''PEAR''Config.php第 166 行中不推荐通过引用分配 new 的返回值
注意:使用未定义的常量DB_SERVER - 在第 13 行的 C:''xampp''htdocs''photo_gallery''include''database.php 中假定为"DB_SERVER"
注意:使用未定义的常量DB_USER - 在第 13 行的 C:''xampp''htdocs''photo_gallery''include''database.php 中假定为"DB_USER"
注意:使用未定义的常量DB_PASS - 在第 13 行的 C:''xampp''htdocs''photo_gallery''include''database.php 中假定为"DB_PASS"
警告:mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo 失败: 不知道这样的主机。 在 C:''xampp''htdocs''photo_gallery''include''database.php 在第 13 行
警告:mysql_connect() [function.mysql-connect]:[2002] php_network_getaddresses:getaddrinfo 失败:不知道这样的主机。(尝试通过 tcp://DB_SERVER:3306) 在第 13 行的 C:''xampp''htdocs''photo_gallery''include''database.php 中进行连接
警告:mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo 失败: 不知道这样的主机。 在 C:''xampp''htdocs''photo_gallery''include''database.php 在第 13 行数据库连接失败:php_network_getaddresses:getaddrinfo 失败:未知此类主机。
我以某种方式通过重命名配置来修复错误.php
所以这是我的问题,为什么我收到这个错误? config.php文件名是问题吗?Lynda php的视频教程超出了基础知识,但没有收到此错误。
您的本地配置存在某种错误,可能是因为您安装了某些第三方 PEAR,因此出现错误消息:
已弃用:在 C:''xampp''php''PEAR''Config.php第 166 行中不推荐通过引用分配 new 的返回值
您应该修改系统使用的包和库,因为此错误消息是代码过时的标志(已弃用)。就个人而言,我在Windows上使用XAMPP,我的项目在其htdocs文件夹中也有config.php
,没有任何此类错误。问题是链接的文件是针对 php4 的。在我的系统上,第 166 行如下所示:
$this->container = new Config_Container('section', 'root');
config.php
是调用配置文件的常规和通用名称,因此没有问题。保留此名称不会降低任何安全屏障,只需重命名即可修复。
如果您的项目成功加载配置文件,其他错误将得到修复。也:
警告:
请不要使用
mysql_*
函数来编写新代码。它们不再维护,社区已开始弃用过程。看到红框了吗?相反,您应该了解预准备语句并使用PDO或MySQLi。本文应提供有关决定使用哪个 API 的一些详细信息。对于 PDO,这是一个很好的教程。
这可能是由于同一目录中存在"config.php"和"Config.php"文件。在窗口中,文件名不区分大小写。在Linux中,它们是。