我正在創建一個登錄系統,但PHP打印錯誤導致無效的MySQL結果。 查詢是100%正確的,$ _POST有一個有效的數據。正確查詢MySQL無效結果
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>
如果你這樣做,你會得到什麼:'var_dump($ result);'?那麼'echo mysql_error();'怎麼辦?你假設每一件事情都會完美運作。你需要*檢查錯誤*。每次發生錯誤時,都應確保它沒有發生。 –
輸出:'bool(false)'這個查詢在phpMyAdmin中有效。 連接數據庫 - 在登錄代碼前 http://pastebin.com/YeZxqmaC – Maku123PL
@ Maku123PL'bool(false)'表示您的查詢失敗。'mysql_query()'期望**兩個**參數是這樣的:'mysql_query(「your query」,$ connection);'其中'$ connection'是你的mysql連接的資源 –