我正在创建一个登录系统,但是PHP打印错误并显示无效的MySQL结果。
查询是100%正确,$ _ POST具有有效数据。
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ..../public_html/libs/basic.php on line 27
这是PHP:
if(isset($_POST['password']) && isset($_POST['login']))
{
$login = mysql_real_escape_string($_POST['login']);
$result = mysql_query("SELECT * FROM `users` WHERE `login`='". $login ."' AND `pass`='". createPasswordHash($_POST['login'], $_POST['password']) ."' LIMIT 1");
if(mysql_num_rows($result) > 0)
{
$user_checked = 1;
$token = md5(uniqid() . "salt" . rand());
setUserConfig('token', $token);
setUserConfig('token_time', time() + (60 * 60));
return true;
}
}
createPasswordHash:
function createPasswordHash($login, $pass)
{
return md5($login . "_". md5($pass));
}
形成:
<form method="POST" action="?p=home">
Login: <input type="text" name="login" placeholder="Wpisz login..." />
Hasło: <input type="password" name="password" placeholder="Wpisz hasło..." />
<input type="submit" value="Zaloguj" />
</form>
最佳答案
我认为您必须使用fetch
(或等效的东西)[mysql_fetch_row][1]
您的结果,例如:
...
$result = mysql_fetch_row ( $result );
if(mysql_num_rows($result) > 0) {
...
}
您也可以尝试此操作以查看
$result
中的内容:print_r ($result);
要么
var_dump ($result);
只是警告,不建议使用mysql。建议使用
PDO
关于php - MySQL无效导致正确的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29652806/