0

メソッドで接続を定義しました。ただし、ログイン ページで使用するために、この接続のインスタンスを作成できるようにしたいと考えています。

通常、挿入、選択などのページでこれを行う方法.

$con = new dbclass(); //class where my methods are housed
$con-> createcon(); //create con has the connection handler, ($con=mysqli_connect(x.x.x.x)

結構、私はこれをよく使います。ただし、ログインページでこの手順を実行してもうまくいきません。不十分なようです。返されるエラーは次のとおりです。

    Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, object given in C:\xampp\htdocs\a\login.php on line 103

Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, object given in C:\xampp\htdocs\a\login.php on line 104

Warning: mysqli_query() expects parameter 1 to be mysqli, object given in C:\xampp\htdocs\a\login.php on line 109

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\a\login.php on line 111

これはエラーを返すコードの例です:

$user = mysqli_real_escape_string($con, $user);

今日まで、クラス内の更新メソッドで real_escape_string を使用しただけです。これを行うことで、 real_escape_string の接続ハンドラー要件を満たすことができました

$esc_id = mysqli_real_escape_string($this->conn, $id);

私の質問は、どうにかしてログイン ページにインスタンスを作成する必要があるかどうかです。もしそうなら、どのように?

4

2 に答える 2

0

$con = 新しい dbclass();

しかし、あなたはこのクラスのソースを示していません。

$con-> createcon(); // create con には接続ハンドラがあります ($con=mysqli_connect(xxxx)

コメントに意味はありません。ローカル変数にある場合、mysqli_connect() からの戻り値をどこに置きますか。メソッドが戻った後はアクセスできなくなります。mysqli_functions() に渡すことができるように、どこかに保存する必要があります。

class dbclass {
 var $dbhandle;
 function createcon() {
   $this->dbhandle=mysqli_connect(...);
 }
}

$con=new dbclass();
$con->createcon();
// then you can do....
$user = mysqli_real_escape_string($con->dbhandle, $user);
于 2013-07-30T22:46:59.040 に答える