【问题标题】:WAMP server not reading included PHP fileWAMP 服务器未读取包含的 PHP 文件
【发布时间】:2013-07-29 13:57:24
【问题描述】:

我有一个正在开发的网站,它相当简单,但它使用 MySQL 数据库。我使用 Apache 2.2.25、PHP 5.4.17 和 MySQL 5.1 在 Linux 中对该站点进行了初步开发。在这个服务器堆栈上一切正常。但是,使用最新的 WAMP 服务器,我在 Windows 上遇到了一个非常奇怪的错误。这个站点涉及到许多文件,但就索引页面而言,包含的基本布局:

index.php
->header.php
--->connection.php
--->functions.php
->footer.php

当我加载索引页面时,标题肯定被正确包含,functions.php 也是如此,它包含所有站点和数据库函数,包括使用 mysqli 打开 SQL 连接的函数。但是,包含服务器信息定义的 connection.php 在页面加载时似乎根本没有被读取。我收到诸如

之类的错误

“注意:使用未定义的常量 DB_HOST - 在第 2 行的 D:\wamp\www\functions.php 中假定为 'DB_HOST'”,

尽管这些在connection.php 中明确定义,并且connection.php 是首先包含的。我也尝试过重新组织包含,所以它们是这样的:

index.php
->header.php
--->functions.php
----->connection.php

这也没有改变问题。我什至尝试将 die() 和 mail() 添加到 connection.php 以进行测试。该文件中的任何内容都没有被执行。我想重申一下,这个确切的代码和文件布局在 LAMP 堆栈上工作得很好。我不知道为什么会发生这种情况,因为似乎没有原因。

编辑:这应该在我的原始帖子中。我定义的代码(在 connection.php 中)如下:

define("DB_NAME", "lyricsdb");
define("DB_USER", "lyricsdb");
define("DB_PASS", "XXXXXXXXX");
define("DB_HOST", "localhost");

并且这些常量在functions.php中的以下函数中被引用:

function sql_connect($db_host = DB_HOST, $db_user = DB_USER, $db_pass = DB_PASS, $db_name = DB_NAME) {
    $con = mysqli_connect($db_host, $db_user, $db_pass, $db_name) or die('Could not connect to database.');
    return $con;
}

编辑 2:如果我将我的定义移动到 functions.php 文件的顶部,它工作正常。这是什么我什至没有?

【问题讨论】:

    标签: php apache wamp


    【解决方案1】:

    很可能你的文件被包含了,但是如果你像这样引用数组键,你总是会收到关于未定义常量的警告

    $db[DB_HOST];

    它们应该被引用为

    $db['DB_HOST']

    如果您确定您的变量已定义,请检查您是否在变量名称周围包含了 ',以便它查找键名,而不是查找已定义为常量的内容。这只是警告您,如果有 define('DB_HOST','something');,那么它将优先于您的 $db['DB_HOST'],而是寻找 $db['something']

    【讨论】:

    • 我忘了在我的原始帖子中包含这个(我本来打算这样做的)但是我的常量的定义方式是这样的:define("DB_NAME", "lyricsdb"); define("DB_USER", "lyricsdb"); define("DB_PASS", "XXXXXXXXXX"); define("DB_HOST", "localhost"); 并被这样引用:function sql_connect($db_host = DB_HOST, $db_user = DB_USER, $db_pass = DB_PASS, $db_name = DB_NAME) { $con = mysqli_connect($db_host, $db_user, $db_pass, $db_name) or die('Could not connect to database.'); return $con; }
    • 您能否更新您的问题以包含该信息以及每个位所在的文件
    猜你喜欢
    • 1970-01-01
    • 2018-04-11
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多