有关ecshop的include\cls_mysql.php的一个改进
2016-07-07 15:03 来源:www.chinab4c.com 作者:ecshop专家
| ecshop的mysql类很好使,提供的方法也很多,但是在开发过程中常用到一个autoExecute的方法,在这个方法里有一个bug,导至更新和添加数据时有时无法成功执行,主要原因是如果字段和和mysql关键字相同时mysql就会报错,原代码: function autoExecute($table, $field_values, $mode = 'INSERT', $where = '', $querymode = '') { $field_names = $this->getCol('DESC ' . $table); $sql = ''; if ($mode == 'INSERT') { $fields = $values = array(); foreach ($field_names AS $value) { if (array_key_exists($value, $field_values) == true) { $fields[] = '`'.$value.'`'; $values[] = "'" . $field_values[$value] . "'"; } } if (!empty($fields)) { $sql = 'INSERT INTO ' . $table . ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')'; } } else { $sets = array(); foreach ($field_names AS $value) { if (array_key_exists($value, $field_values) == true) { $sets[] = $value . " = '" . $field_values[$value] . "'"; } } if (!empty($sets)) { $sql = 'UPDATE ' . $table . ' SET ' . implode(', ', $sets) . ' WHERE ' . $where; } } if ($sql) { return $this->query($sql, $querymode); } else { return false; } } 修改后的代码: function autoExecute($table, $field_values, $mode = 'INSERT', $where = '', $querymode = '') { $field_names = $this->getCol('DESC ' . $table); $sql = ''; if ($mode == 'INSERT') { $fields = $values = array(); foreach ($field_names AS $value) { if (array_key_exists($value, $field_values) == true) { $fields[] = '`'.$value.'`'; $values[] = "'" . $field_values[$value] . "'"; } } if (!empty($fields)) { $sql = 'INSERT INTO ' . $table . ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')'; } } else { $sets = array(); foreach ($field_names AS $value) { if (array_key_exists($value, $field_values) == true) { $sets[] ='`'. $value . "` = '" . $field_values[$value] . "'"; } } if (!empty($sets)) { $sql = 'UPDATE ' . $table . ' SET ' . implode(', ', $sets) . ' WHERE ' . $where; } } if ($sql) { return $this->query($sql, $querymode); } else { return false; } } 主要把段名两边加了个'`'符号,运行起来更安全了  | 
回答:
| 支持共享 | 
| 有试到成功的吗? | 
| 细节 决定成败!! 我也觉得ec很多时候 扩展性不是很好!  | 
| 它是开源的,可以加上很多补丁。 | 
 
        
					
						
                          
					
				 
      
      最近更新
常用插件
- ecshop二次商品订购人信息
                                  
ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的...
 - ecshop二次开发详细页面生
                                  
插件介绍: ECSHOP系统,在很多时候,很多商品没有人购买,不但购买的人...
 - ecshop分类批量扩展插件
                                  
ecshop分类批量扩展插件,这个插件是ecshop插件里面比较核心的插件。我们...
 - ecshop商品分类名称增加样
                                  
ecshop插件介绍:本插件可以方便在后台管理,为ecshop商品分类名称增加样...
 - ecshop2.7.1打印发货单插件
                                  
ecshop2.7.1打印发货单插件介绍:ecshop2.7.1和以前的ecshop版本不一样,ecs...
 
ecshop热门问答
ecshop热门资料
          
               
            ecshopserial 
                
            ecshop五一 
                
            ecshop数据包 
                
            ecshop环境影响 
                
            zencart销售排行 
                
            ecshop速递 
                
            ecshop淘宝下载 
                
            ecshopEC二次开发 
                
            ecshopCEO 
                
            ecshop小小的 
                
            ecshop走秀网 
                
            ecshop里加 
                
            ecshopSpace 
                
            ecshop免费版 
                
            ecshopdigg顶一下 
                
            ecshop二级分类加图标 
                
            ecshop排序 
                
            ecshop url伪静态 
                
            安装两个ecshop系统 
                
            ecshop开发 
                
            ecshop264 
                
            ecshopUpFileBtn 
                
            ecshopdirect 
                
            ecshop最新推荐 
                
            zencart二次开发 
                
            分析zencart 
                
            ecshop葡萄酒商城 
                
            ecshop博客园 
                
            ecshopmemcche的使用 
                
            ecshop拍拍 
             
        
      


