无法将 FORM 中的变量与 PHP 中的 MYSQL 记录匹配


Can't match variable from FORM with MYSQL record in PHP

晚上好,

我的登录代码有问题。我已经创建了表单,我将变量从中获取到我的php代码中(该部分运行良好)。然后我创建了php登录代码,我试图通过输入的登录名来匹配密码。但即使我输入登录名和正确的密码,我仍然会得到else.这是代码:

<?php
$login=$_POST["loginas"];
$password=$_POST["passwordas"];
//connect to mysql
$rysys = new mysqli('localhost', 'root','','testas');
//are we connected?
if($rysys->connect_error){
    die("Neprisijungeme, nes: " . $rysys->connect_error);
}
//the query
$sql = "SELECT password FROM vartotojai WHERE login='$login'";
$rezultatas=$rysys->query($sql);
if($password == $rezultatas){
    echo "Prisijungeme 'n";
}
    else{
        echo "Neteisingas slaptazodis arba prisijungimo vardas'n";
    }

?>

解释: $login 我从我的表格中得到它 $password 我从我的表格中得到它我有数据库'testas',它有'vartotojai'表。vartotojai桌子有'password''login'我输入的登录名和密码是100%像在数据库中一样。

查询函数不会以字符串形式返回您的密码字段,请阅读文档:

http://php.net/manual/en/mysqli.query.php

因此,您的支票将始终是假的。该函数的正确用法如下:

if($password == $rezultatas["password"]){

我自己找到了解决方案。我又加了一行:

$rez=$rezultatas->fetch_assoc();行帮助我从查询中获得的结果创建一个 assoc 数组。

if($password == $rez["password"] 在这里,我只是使用 assoc 数组来检查它是否好。

@odedta,你是对的。自己找到问题的答案更有用。但是从比我好得多的人那里得到建议也是学习的好方法。