2

mysqli をオブジェクト指向で使用する方法があるとは知らなかったので、DB というクラスを作成しました。__construct の間に、ホスト名、ユーザー名、パスワード、およびデータベース名が必要です。次のコードがあるとします。

$myDB = new DB("localhost", "user", "password", "database");
$myDBConnect = $myDB->connect();

if(!$myDBConnect) {
    echo "<strong>The following error has occurred: " . $myDB->getError();
}

このステートメントは現在 を返しているFALSEため、変数には明らかに が含まれています。DB クラスのメソッドは次のとおりです。ifTRUE

public function connect() {
    // Create connection
    $this->dbConnx = mysqli_connect($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName);

    if(mysqli_connect_errno($this->dbConnx)) {
        $this->dbError = mysqli_error($this->dbConnx);
        return false;
    }
}

エラーの詳細がわかりません。connect メソッドを追加しようとしor die(mysqli_error());ましたが、常に $myDB がインスタンス化されたファイルからテキストを出力するだけです。また、エラー報告コードのバリエーションも試しました。たとえば、引数を持たない、connection 引数の有無にかかわらずmysqli_connect_errno()使用するなどです。$this->dbError = mysqli_connect_error()

これは mysqli を使用するオブジェクト指向の方法を不必要に複雑にしていますか? または、既に取得したコードを使用して先に進むことができる単純なものが欠けていますか? お時間をいただきありがとうございます。

4

3 に答える 3

2

変数でない場合

       if(!$myDBConnect) {
      ^--remove variable sign here

編集:

あなたの接続は

    $myDB = new mysqli("localhost", "user", "password", "database");
于 2013-08-06T19:59:43.567 に答える
1

「connect」メソッドの return true ステートメントを忘れたのではないでしょうか?

また、PDO を使用する必要があります。

于 2013-08-06T20:03:03.413 に答える