我希望这段代码检查表单登录是否$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"; }
3 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
$data_from_table 不是 true,而是查询的结果对象。但如果用户不在数据库中,则为 false,因为没有结果。将其更改为
if($data_from_table!==false) {
一些善意的建议:永远不要将密码以真实文本形式保存在数据库中,我的意思是像以前一样。
千巷猫影
TA贡献1829条经验 获得超7个赞
根据文档,PDO::Query 函数返回一个PDOStatement
对象,如果效果不佳,则返回 false。为什么你是真的。
为什么你用 true 检查它,尝试用 false 检查它,这样如果它不是 false,你就可以抓住你的$name
- 3 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消