だから私はmysqliオブジェクトを含むクラス変数を持つphpの単純なユーザークラスに取り組んでいますが、エラーが発生し続けます:
致命的なエラー:行 Xの* /classes/user.phpの非オブジェクトに対するメンバ関数 real_escape_string() の呼び出し
すべてを確認しましたが、動作するはずですが、動作しません。何とかして。これは私のコードです:
namespace bibliotheek;
class user
{
private $mysql;
private $logged_in = false;
private $user_data = null; //ARRAY: user_id, e-mail, password, bevoegdheid, naam, achternaam, adres, postcode, stad
function __construct(\mysqli $mysql, $salt)
{
$this->mysql = $mysql;
}
public function login($email, $pass, $hash = false)
{
$email = $this->mysql->real_escape_string($email);
if($hash == false)
$pass = sha1($this->salt.$pass);
$query = "SELECT *
FROM gebruikers
WHERE gebruikers.email = '$email' AND gebruikers.password = '$pass'";
$result = $this->mysql->query($query);
$user_data = $result->fetch_assoc();
if($user_data == null)
return;
$this->logged_in = true;
$this->user_data = $user_data;
$this->create_cookies($email, $pass);
}
}
そして、これは mysqli オブジェクトがクラスに渡される方法です:
$mysql = new mysqli($cfg['mysql_server'], $cfg['username'], $cfg['password'], $cfg['database']);
$user = new bibliotheek\user($mysql, $cfg['salt']);
mysql ログイン データが正しいことを確認しました。
ここで本当に明白な何かが欠けているに違いありませんが、それを見ることができません。どんな助けでも大歓迎です。ありがとう!