From f3e00893af30212b501e07bdd83aa244cf3a4893 Mon Sep 17 00:00:00 2001 From: ThinkPHP Date: Sat, 27 Apr 2013 17:54:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E7=B1=BB=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E5=AF=B9=E5=AD=97=E6=AE=B5=E7=B1=BB=E5=9E=8B=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Library/Think/Model.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Library/Think/Model.php b/Library/Think/Model.php index f127d63e..4f22cf1d 100644 --- a/Library/Think/Model.php +++ b/Library/Think/Model.php @@ -160,7 +160,7 @@ class Model { foreach ($data as $key=>$val){ if(!in_array($key,$this->fields,true)){ unset($data[$key]); - }elseif(is_scalar($val)) { + }elseif(is_scalar($val) && empty($this->options['bind'][':'.$key])) { // 字段类型检查 $this->_parseType($data,$key); } @@ -197,10 +197,10 @@ class Model { return false; } } - // 分析表达式 - $options = $this->_parseOptions(); // 数据处理 $data = $this->_write_data($data); + // 分析表达式 + $options = $this->_parseOptions(); if(false === $this->_before_insert($data,$options)) { return false; } @@ -408,7 +408,7 @@ class Model { foreach ($options['where'] as $key=>$val){ $key = trim($key); if(in_array($key,$fields,true)){ - if(is_scalar($val)) { + if(is_scalar($val) && empty($options['bind'][':'.$key])) { $this->_parseType($options['where'],$key); } }elseif('_' != substr($key,0,1) && false === strpos($key,'.') && false === strpos($key,'(') && false === strpos($key,'|') && false === strpos($key,'&')){ @@ -431,7 +431,7 @@ class Model { * @return void */ protected function _parseType(&$data,$key) { - if(empty($this->options['bind'][':'.$key]) && isset($this->fields['_type'][$key])) { + if(isset($this->fields['_type'][$key])) { $fieldType = strtolower($this->fields['_type'][$key]); if(false === strpos($fieldType,'bigint') && false !== strpos($fieldType,'int')) { $data[$key] = intval($data[$key]);