开发者社区 问答 正文

MySQL5 中完全匹配中文使用LIKE和等于那个更好?

在会员表中有个 username 字段,支持中文。
现在需要检测用户是否存在,代码如下
`if($has == true){
//调用前请使用 $db 实例化 mysql 类

$array = $db->getArray("SELECT * FROM `" . DB_PREFIX . "admin` WHERE `username` LIKE '$username' LIMIT 1;"); 

if(is_array($array))
{

    return "用户名 " . $username . " 已经存在!";
} 

else
{

    return 'ok';
}

}
else
{
return 'ok';
} `
代码中的 where username LIKE '$username' 合适吗,使用 where username = '$username' 有区别吗, $username 可能是中文。

展开
收起
落地花开啦 2016-02-06 17:38:25 3189 分享 版权
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    当然是等于,加`是用在保留字上
    用like注意做好自定义过滤,万一有人传一个%hello%的字符窜进去,等于变相正则查询了, mysql escape对这种没用的
    LIKE是部分匹配,如果是检测用户名存在就可以用=操作符的

    2019-07-17 18:38:36
    赞同 展开评论