2013-03-30 59 views
0

我正在對PHP的一個惱人的錯誤給出的說法mysql_result()預計參數1是資源,布爾在

Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\john\core\functions\users.php on line 16

Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\john\core\functions\users.php on line 24

線16是指

return (mysql_result(mysql_query("Select 'id' From 'users' where 'username'= '$username'"), 0 ,'id')); 

而第24行是指

return (mysql_result(mysql_query("Select count('id') From 'users' where 'username'= '$username' AND 'hashed_password' = '$hash_password'"),0)==1)? $user_id : false; 

我的查詢是正確的,但我認爲查詢有一些問題。 請幫我一把。

整個代碼是在這裏

<?php 
function user_exists($username){ 
    $username = sanitize($username); 
    return(mysql_result(mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username'") 
    , 0) == 1) ? true : false; 
} 

function user_active($username){ 
    $username = sanitize($username); 
    return(mysql_result(mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username' AND `active` = 1") 
    , 0) == 1) ? true : false; 
} 

function user_id_from_username($username){ 
    $username = sanitize($username); 
    return (mysql_result(mysql_query("Select 'id' From 'users' where 'username'= '$username'"), 0 ,'id')); 
} 


function login($username,$password){ 
    $user_id = user_id_from_username($username); 
    $username = sanitize($username); 
    $hash_password = md5($password);  
    return (mysql_result(mysql_query("Select count('id') From 'users' where 'username'= '$username' AND 'hashed_password' = '$hash_password'"),0)==1)? $user_id : false; 
} 

?> 
+0

'mysql_query'只返回成功的資源,否則返回'FALSE'。檢查'mysql_query'是否成功。 – Tushar

+0

@ user1836957你檢查了答案嗎? –

回答

4

問題是你用''周圍的欄。它被視爲字符串沒有列名

變化

return (mysql_result(mysql_query("Select 'id' From 'users' where 'username'= '$username'"), 0 ,'id')); 

return (mysql_result(mysql_query("Select `id` From `users` where `username`= '$username'"), 0 ,'id')); 

return (mysql_result(mysql_query("Select count(`id`) From `users` where `username`= 
'$username' AND `hashed_password` = '$hash_password'"),0)==1)? $user_id : false; 
+2

OP,注意反引號'\''和撇號'''之間的區別。當我學習時,我討厭這個。 – Tushar

相關問題