2013-03-30 60 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

相关问题