数据库 mysql 用 int 值 select varchar 字段,结果查出来了所有结果

u1370743666 · 2016年12月22日 · 最后由 luikore 回复于 2016年12月25日 · 2267 次阅读

正常查询是这样的

select * from users where email = 'xxx@xxx.xxx'

orm 和代码没处理好,传了 false 值,结果生成的 sql 是这样的

select * from users where email = 0

这个语句在 mysql 中会把所有 user 查出来,在 postgresql 会报错。

那么能不能通过在 mysql 的设置来避免这个问题呢?

共收到 4 条回复

将 前端传的值 强制转为 字符串。 一般的http请求rails都会帮你做过滤操作的吧

#1楼 @pathbox 嗯,但我想能在 mysql 上设置最好

#2楼 @u1370743666 这显然应该在应用上设置啊,为什么你会想降到数据库层上解决?

我给两个简易的解决建议... :

A: 换 pg B: 换工作

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册