×
FalconChen
2021-03-19 16:16
发现一个坑,Mysql往decimal(4,2)的字段类型插入100的话里会报错,然而在WordPress里用$wpdb->insert方法是可以插入的,结果是99.99。。。查了半天
0

评论 ( 6 )

  • FalconChen 弹主
    2021-03-19 19:11
    @wantor 你是对的,wordpress的确是把SESSION的sqlmode改成了非严格模式。而Global的sqlmode是STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION 。
    0
  • FalconChen 弹主
    2021-03-19 18:47
    @夜中孤影 这个我当然知道。。。我就是测试溢出
    0
  • 夜中孤影
    2021-03-19 17:41
    Mysql 的 decimal(4,2) 是总共4位,两位是小数 100.00 已经是5位了,你试下99
    1
  • wantor
    2021-03-19 17:27
    因为框架连接时候可以设置sqlmode 为非严格模式: sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 改为 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"。
    1
  • FalconChen 弹主
    2021-03-19 16:20
    @OSC首席保安 我还专门在phpmyadmin测试了,也插不进去的,会报错:#1264 - Out of range value for column 'number' at row 1
    0
  • OSC首席保安
    2021-03-19 16:18
    还得看你是在navicat里看的4,2还是phpmyadmin里看的4,2,前者报错,后者没问题
    0