Php Mysql_fetch_数据意外打印

Php Mysql_fetch_数据意外打印,php,mysql,database,Php,Mysql,Database,我想用MySQL进行密码验证,但它不起作用。它不在if子句中进行比较,而是打印MySQL\u fetch\u对象 public function __construct($userId, $userPassword) { $this->userId = $userId; $this->userPassword = $userPassword; $connect = mysql_connect('localhost', 'php', 'geheim') or e

我想用MySQL进行密码验证,但它不起作用。它不在if子句中进行比较,而是打印MySQL\u fetch\u对象

public function __construct($userId, $userPassword) {
    $this->userId = $userId;
    $this->userPassword = $userPassword;
    $connect = mysql_connect('localhost', 'php', 'geheim') or exit ();
    $users = mysql_select_db("chat", $connect) or exit ();
    $request = "SELECT userPassword FROM user WHERE userId=$userId";
    $result = mysql_query($result);
    if(mysql_fetch_object($result)->userPassword === $userPassword){
        echo "Right Password";
    }
但它只打印了这个,尽管我从来没有说过它应该回应它:

verificateUser对象([userId:verificateUser:private]=>1[userPassword:verificateUser:private]=>12345)

我做错了什么?谢谢你的帮助

试试这个

 public function __construct($userId, $userPassword) {
$this->userId = $userId;
$this->userPassword = $userPassword;
$connect = mysql_connect('localhost', 'php', 'geheim') or exit ();
$users = mysql_select_db("chat", $connect) or exit ();
$request = "SELECT userPassword FROM user WHERE userId=$userId";
$result = mysql_query($result);
$userpass =mysql_fetch_assoc($result);
if($userpass['userPassword'] == $userPassword){
    echo "Right Password";
}
}
编辑:如果您对下面的方法感兴趣

 public function __construct($userId, $userPassword) {
$this->userId = $userId;
$this->userPassword = $userPassword;
$connect = mysql_connect('localhost', 'php', 'geheim') or exit ();
$users = mysql_select_db("chat", $connect) or exit ();
$request = "SELECT userPassword FROM user WHERE userId=$userId";
$result = mysql_query($result);
$userpass =mysql_fetch_assoc($result);
if($userpass['userPassword'] == $userPassword){
   return true:
}
return false;
}
然后你可以这样检查

  if(__construct($userId, $userPassword) == true) { you welcome}
  if(__construct($userId, $userPassword) == false) {do your pass again}

mysql\u fetch\u assoc
返回一个assoc数组,而不是一个对象可能意味着
mysql\u fetch\u assoc($result)[“userPassword”]
而且只有在较新的版本上才允许在返回时直接使用数组表示法,因此在较旧的版本上,您需要两行代码来获取值。@sunfingerde刚刚编辑了我的答案,我认为如果您可能对reutrn和检查目的感兴趣,这会更好。