我的 php 代码不检查数据库数据

我希望这段代码检查表单登录是否$name在$password数据库中,如果是,则显示,echo "Hello  ".$name;如果不是echo "You are not in database";,但问题是它总是显示真相。


感谢您的回答,抱歉我的英语)


    include "db.php";

    $db = db();

    /*print_r($db);*/

    $name = $_POST["name"];

    $password = $_POST["password"];

    $qur = "SELECT * FROM login WHERE name ='".$name."' AND password =  '".$password."'";

    $data_from_table = $db->query($qur);

    if($data_from_table == true)

    {

      echo "Hello  ".$name;

    }

    else

    {

      echo "You are not in database";

    }


慕尼黑的夜晚无繁华
浏览 113回答 3
3回答

呼唤远方

$data_from_table 不是 true,而是查询的结果对象。但如果用户不在数据库中,则为 false,因为没有结果。将其更改为if($data_from_table!==false) {一些善意的建议:永远不要将密码以真实文本形式保存在数据库中,我的意思是像以前一样。

千巷猫影

根据文档,PDO::Query 函数返回一个PDOStatement对象,如果效果不佳,则返回 false。为什么你是真的。为什么你用 true 检查它,尝试用 false 检查它,这样如果它不是 false,你就可以抓住你的$name

饮歌长啸

PHP新版本mysql不再维护,使用PDO::Query函数查看返回的数据$data_from_table,是一个数据集
打开App,查看更多内容
随时随地看视频慕课网APP