0

当用户第一次注册或登录时,我想为我的 php 应用程序使用单个文件连接到数据库

什么是代码与下面的相同是好的:

$username="root";
$password="root";
$database="test";



    function Save($name)
    {
        global $username;
        global $password;
        global $database;

        $link = mysql_connect('localhost', $username, $password);
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }
        @mysql_select_db($database) or die( "Unable to select database");
        $query = "INSERT INTO test (name)" .
                 "VALUES ('" . $name . "')";
        mysql_query($query);
        mysql_close();
    }

另外,我怎样才能满足该文件的要求?它应该位于应用程序文件夹的根目录中,但我应该在 require '/filename.php' 之后先反斜杠,还是应该先放双点?

4

5 回答 5

2

如果文件在同一目录中,您可以简单地使用:include_once "db.php";

如果它在父目录中(即上一级),则使用: include_once "../db.php";

另一种方法是在全局 DOCUMENT_ROOT 中附加文件名(就像其他人在下面给出的示例一样)。

而且,避免使用 mysql_* 函数。请改用 PDO 或 mysqli。

祝你好运。:)

于 2012-09-01T04:44:50.623 回答
1

您的问题本质上归结为“我如何在任何地方包含根目录中的文件”。嗯,有两个答案。

第一个答案是只使用inlude($_SERVER['DOCUMENT_ROOT']."/connect.php");,但是要输入很多内容,尤其是在包含很多内容的情况下。

就我个人而言,我喜欢以chdir($_SERVER['DOCUMENT_ROOT']);Then 开始我的脚本,我不必再担心我在哪里 - 我将永远在根文件夹中。

于 2012-09-01T04:42:03.870 回答
0
  1. save如果每个请求都会有很多这样的调用,那么在 every 上打开 mysql 连接可能并不好。
  2. inlude($_SERVER['DOCUMENT_ROOT'] . '/db.php');
于 2012-09-01T04:42:52.700 回答
0

几点评论:首先,如果您不需要在其他地方使用密码和用户名和数据库,您应该在函数中定义它们。

其次,如果我没记错的话,如果你把“/”放在路径前面,它将把你一直带到文件系统的根目录,我猜这个用户将无权访问。话虽如此,我会使用“..”来向上导航层次结构。所以使用: require_once("../path/to/file.php")

于 2012-09-01T04:45:08.017 回答
0

与其将包含文件放在文档根目录中,不如为常见的包含文件创建一个目录,并将其添加include_pathphp.ini. 然后你就可以做include 'connect.php';

于 2012-09-01T04:47:30.880 回答