[BUG提交]关于int字段,插入数据库的数据类型检测

浏览:815 发布日期:2015/03/22 分类:站务建议
    protected function _parseType(&$data,$key) {
        if(!isset($this->options['bind'][':'.$key]) && isset($this->fields['_type'][$key])){
            $fieldType = strtolower($this->fields['_type'][$key]);
            if(false !== strpos($fieldType,'enum')){
                // 支持ENUM类型优先检测
            }elseif(false === strpos($fieldType,'bigint') && false !== strpos($fieldType,'int')) {
                $data[$key]   =  intval($data[$key]);
            }elseif(false !== strpos($fieldType,'float') || false !== strpos($fieldType,'double')){
                $data[$key]   =  floatval($data[$key]);
            }elseif(false !== strpos($fieldType,'bool')){
                $data[$key]   =  (bool)$data[$key];
            }
        }
    }
其中:$data[$key] = intval($data[$key]);有问题,当数据库字段设置为int时默认值不一定是0,可以是NULL,那么这句就直接默认为0了!
最佳答案
评论() 相关
后面还有条评论,点击查看>>