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を行うにはどうすればよいですか? それはアプリケーション フォルダのルートにあるべきですが、require '/filename.php' の後に最初にバック スラッシュを付ける必要がありますか?

4

5 に答える 5

2

ファイルが同じディレクトリにある場合は、次を使用できます。include_once "db.php";

親ディレクトリ (つまり、1 レベル上) にある場合は、次を使用します。 include_once "../db.php";

もう1つは、グローバルDOCUMENT_ROOTをファイル名に追加することです(他の人が以下に例を示しているように)。

また、mysql_* 関数は避けてください。代わりに PDO または mysqli を使用してください。

幸運を願っています。:)

于 2012-09-01T04:44:50.623 に答える
1

あなたの質問は、「どこからでもルートにあるファイルをどのように含めることができるか」に要約されます。さて、答えは二つ。

最初の答えは単に を使用するinlude($_SERVER['DOCUMENT_ROOT']."/connect.php");ことですが、特にインクルードが多い場合は、入力するのが大変です。

個人的には、スクリプトを次のように開始するのchdir($_SERVER['DOCUMENT_ROOT']);が好きです。

于 2012-09-01T04:42:03.870 に答える
0
  1. saveリクエストごとにそのような呼び出しが多数ある場合、すべての で 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_path設定に追加する必要がありますphp.ini。その後、あなたはただ行うことができますinclude 'connect.php';.

于 2012-09-01T04:47:30.880 に答える