php数据库问题,求助。。。。
初学PHP来的,想自己写一个登陆的页面,但现在连验证帐号都过不去,请大家看下我的代码是哪里有问题
<?php
$user123 = $_POST['user'];
$db = new mysqli($sqln,$sqlu,$sqlp,$sqld) or die("Error in the consult.." . mysqli_error($db));
$query = "SELECT 'user_email' FROM 'user' WHERE 'user_email' = '$user123'";
// mysql_select_db($sqld);
mysqli_select_db($db, $sqld);
$result = $db->query($query) or die("Error in the consult.." . mysqli_error($db));
if ($result == 1){
echo "<p> 登陆成功 </p>";
}
elseif ($result == 0){
echo "<p> 没有找到 </p>";
}
echo $_POST["user"];
$dba = $db->affected_rows;
echo $dba;
mysqli_close($db);
?>
$query = "SELECT user_email FROM `user` WHERE user_email = '$user123'";
...
}
[解决办法]
$query = "SELECT 'user_email' FROM 'user' WHERE 'user_email' = '$user123'";
和
$query = "SELECT `user_email` FROM `user` WHERE `user_email` = '$user123'";
是一样的吗?
[解决办法]
mysqli::query -- mysqli_query — 对数据库执行一次查询
返回值
失败时返回 FALSE,通过 mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result 对象,其他查询则返回TRUE。
因此,即使你输入库中没有的记录,只要sql没有错误,也是返回mysqli_result 对象。而 "结果集==1" 永远为真,所以就出现你说的输入什么都是对的了。
正确的做法是用它查询出来的行数与1比较就对了。
if ($result->num_rows == 1){
echo "<p> 登陆成功 </p>";
}
else {
echo "<p> 没有找到 </p>";
}