数据库连接不能作为包含文件工作


Database Connection not Working as Include File

我想把我的数据库连接信息移动到一个包含文件-通常情况下,数据库连接良好,当我把它写在整个php头,像这样:

   <?php
        define('DB_LOCATION', 'x');
        define('DB_USERNAME', 'x');
        define('DB_PASS', 'x');
        define('DB_NAME', 'x');
        $dbc = mysqli_connect(DB_LOCATION, DB_USERNAME, DB_PASS, DB_NAME)
            or die('Error connecting to database');
        $error_message= "";
        $user_name = $_POST['user'];
        $user_password= $_POST['pass'];
        if (isset($_POST['submit'])) {
            ......
        }

在这里,我把这个信息作为一个包含文件移动到它自己的文件。它被保存为一个(.php)文件。

  <?php
        define('DB_LOCATION', 'x');
        define('DB_USERNAME', 'x');
        define('DB_PASS', 'x');
        define('DB_NAME', 'x');
        $dbc = mysqli_connect(DB_LOCATION, DB_USERNAME, DB_PASS, DB_NAME)
            or die('Error connecting to database');

    ?>

现在,我用上面提到的包含文件替换了数据库连接。脚本和包含文件都在同一个目录/文件夹中。然而,当我去我的页面与require_once包含在标题中,页面是空白的。我没有得到一个数据库错误,这意味着它是连接,但我没有看到我的内容。

可能是位置没有正确指定吗?两者都在file/LESSON下。我也试过使用@require_once,它没有帮助。如有任何意见,将不胜感激。

<?php
require_once("/LESSON5/Lesson_5_DB_Connection.php");
?>
<?php 
    session_start();
    $error_message= "";
    $user_name = "";
    ......
?>

如果两个文件在同一个目录下,则不需要提供目录名,只需提供文件名。

在你的例子中使用

require_once("Lesson_5_DB_Connection.php");

和在函数调用前使用@来抑制所有错误消息。这就是为什么你得到空白页