1

PHP で行っている新しいプロジェクトでは、データベースに接続してクエリを実行する SQLMethods クラスを作成しました。今夜は、実際にテストする最初の夜でした (1 週間ほど前に書いたので忘れていました)。予期しないエラーが発生しました。コンストラクターで選択されます。

コンストラクター:

    public function SQLMethods() {
        $SQLConnection = mysql_connect($SQLDBAddress, $SQLUserName, $SQLPassword);

        if (!$SQLConnection) {
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db($SQLDB, $SQLConnection);
    }

問題の機能:

    public function ExecuteQuery($Query) {
        mysql_query($Query, $SQLConnection) or die('Could not perform query: ' . mysql_error());
    }

問題が何であるかを誰かが見ていますか?コンストラクターが完了した後、接続は閉じますか?

4

3 に答える 3

7

クラスで $SQLConnection を宣言し、次のように参照する必要があります。

 $this->SQLConnection

単純な $SQLConnection ではありません。

于 2008-09-26T10:07:49.140 に答える
2

$SQLConnectionExecuteQueryメソッド内には存在しません。

にパラメーターとして直接渡すか、コンストラクターで設定され、クラス メソッド内としてアクセスされるクラス プロパティをExecuteQuery追加することができます。sqlConnection$this->sqlConnection

于 2008-09-26T10:07:51.917 に答える
1

使用しようとしている変数$SQLConnection ExecuteQuery()は、別のスコープ内で作成されています。(SQLMethods関数)。

PHPスクリプトが作業を完了するか、自分で閉じた場合(そのスクリプト内で接続が確立された場合)、接続は閉じます。

php.netのドキュメントに記載されているように、$SQLConnection変数をスキップする必要がありますExecuteQuery

リンク識別子が指定されていない場合は、によって開かれた最後のリンクmysql_connect()が想定されます。

于 2008-09-26T10:10:41.053 に答える