【发布时间】:2013-03-20 21:22:55
【问题描述】:
假设用户输入
mysite.com/profile?identity=1
mysite.com/profile?identity=dinodsja
mysite.com/profile?identity=1a
获取价值
$identity = $_GET['identity']; // identity can be user_id or user_name
我有一个简单的选择查询:
SELECT * FROM lb_users WHERE (user_id = 'dinodsja' OR user_name = 'dinodsja') AND user_status = 1
而且效果很好。但问题是:
SELECT * FROM lb_users WHERE (user_id = '1a' OR user_name = '1a') AND user_status = 1
当我执行这个查询时,它也会返回结果不满足条件。
表结构:
user_id bigint(25)
user_name varchar(50) utf8_general_ci
**
-> Is this a MySQL Bug ?
-> How can we avoid this ?
-> What will be the query ?
**
【问题讨论】:
-
可以发一下表结构吗
-
您将苹果(数字)与橙子(字符串)进行比较。
-
当您知道字段的类型是数字时,验证用户输入的问题是什么?您希望社区提供什么样的答案来为这个问题提供悬赏?