0

データベース クラスを呼び出してクエリ関数を実行すると、このエラーが発生します。

これが私のクラスです:

class dbConnect {

public $mysqli = null;

public function __construct() {
    $this->mysqli = new mysqli( "localhost", "root", "pass", "database" );
    if ($this->mysqli->connect_errno) 
    {
        echo "Error MySQLi: ("&nbsp. $this->mysqli->connect_errno 
        . ") " . $this->mysqli->connect_error;
        exit();
    }
    $this->mysqli->set_charset("utf8"); 
}

public function __destruct() {
    $this->closeDB();
}

public function runQuery($qry) {
    $result = $this->mysqli->query($qry);
    return $result;
}

ここに私のページがあります:

$db = new dbConnect();
$insert = "INSERT INTO `users` (`username`,`password`,`email`,`ip`,`date`) VALUES ('$username','$pw','$email','$ip','$time')";

$db->runQuery( $insert ) or die("Error MySQLi: ("&nbsp. $db->mysqli->connect_errno . ") " . $db->mysqli->connect_error);

編集:

エラー Dbr`0 が表示されるようになりました

4

4 に答える 4

1

これを変える:

$db->runQuery( $insert ) or die("Error MySQLi: ("&nbsp. $this->mysqli->connect_errno . ") " . $this->mysqli->connect_error);

これに:

$db->runQuery( $insert ) or die("Error MySQLi: ("&nbsp. $db->mysqli->connect_errno . ") " . $db->mysqli->connect_error);

$db->mysqliただし、データベース オブジェクト ( ) に直接アクセスするのではなく、エラーをフェッチするメソッドを作成することをお勧めします。

于 2013-09-28T22:28:47.180 に答える
1

サイコロの最後の行では、あなたはオブジェクトにいません。

于 2013-09-28T22:28:03.370 に答える
0

or dieステートメントで a を忘れた場合は、$thisに置き換えてください$db

于 2013-09-28T22:29:24.013 に答える
0

次のように __destruct() 関数で呼び出したクラスに closeDB 関数が表示されません。クエリで$this->closeDB(); も置き換え$this->mysqli->connect_errnoてください。$db->mysqli->connect_errno

于 2013-09-28T22:32:45.790 に答える