本文共 706 字,大约阅读时间需要 2 分钟。
mysql字段类型为字符串时,传递查询值0 居然能查询出记录
数据库结构CREATE TABLE IF NOT EXISTS `review_account` (
`review_username` varchar(64) NOT NULL COMMENT '审核账号',
`review_password` varchar(32) NOT NULL COMMENT '审核账户密码,md5加密'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='外部素材审核账户';
INSERT INTO `review_account` ( `review_username`, `review_password`) VALUES
('demo', '99a27e6f69d67b3b91f9a1305db3dc35');
查询语句SELECT * FROM (`review_account`) WHERE `review_username` = 0
结果居然能查询出记录
避免上面的问题 可以使用 空字符 ''SELECT * FROM (`review_account`) WHERE `review_username` = ''
这个比较跟php的比较应该是一样的问题,下面会输出1,当然判断2个值是否完全一致时可以用 ===$string = 'demo';
$zero = 0;
if($string == $zero){
echo 1;
}else{
echo 0;
}
if($string === $zero){
echo 1;
}else{
echo 0;
}
转载地址:http://bbnsx.baihongyu.com/