php执行mysql语句失败_使用php和mysql失败执行语句

bd96500e110b49cbb3cd949968f18be7.png

I insert the users output like this:

$userName= SanitizeString($userName);

$pass= SanitizeString($pass);

$email= SanitizeString($email);

$userName=mysql_real_escape_string($userName);

$pass=mysql_real_escape_string($pass);

$email=mysql_real_escape_string($email);

$salt = 'SHIFLETT';

$password_hash = md5($salt . md5($pass.$salt));

mysql_query("INSERT INTO users (user_name,pass,email,reputation,role,ban,date) VALUES ('$userName', '$password_hash', '$email', '$reputation', '$role','false','$date')" ) or exit(mysql_error());

That is the SanitizeString($var) function:

function SanitizeString($var)

{

$var=stripslashes($var);

$var=htmlentities($var, ENT_QUOTES, 'UTF-8');

$var=strip_tags($var);

return $var;

}

But when I try to find the users password and name with this query. It fails:

$user_name=SanitizeString($user_name);

$pass=SanitizeString($pass);

$user_name=mysql_real_escape_string($user_name);

$pass=mysql_real_escape_string($pass);

$salt = 'SHIFLETT';

$password_hash = md5($salt . md5($pass.$salt));

$result=mysql_query("SELECT COUNT(*) AS Result FROM users WHERE user_name='$user_name' AND pass='$password_hash' LIMIT 1") or die(mysql_error());

if the count is greater than 0 than it means it found one result and the user should log in. But that doesnt happen..Why?

UPDATE more to this:

if(mysql_num_rows($result)>0)

{

echo "Login successful".mysql_num_rows($result);

return $dataArray=TRUE;

}

else

{

echo "Login unsuccessful:".mysql_num_rows($result);

}

解决方案

You have to use GROUP BY if you want to use COUNT(*), but you can get the number of rows with mysql_num_rows() like this.

$result=mysql_query("SELECT * AS Result FROM users WHERE user_name='$user_name' AND pass='$password_hash' LIMIT 1") or die(mysql_error());

$num_rows = mysql_num_rows($result);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值