mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 20:52:48 +08:00
增加db_attr_case配置参数 用于配置 数据表字段大小写规则
This commit is contained in:
@@ -33,7 +33,7 @@ class Model
|
||||
// 数据库名称
|
||||
protected $dbName = '';
|
||||
// 数据表字段大小写
|
||||
protected $attrCase = \PDO::CASE_LOWER;
|
||||
protected $attrCase = null;
|
||||
//数据库配置
|
||||
protected $connection = [];
|
||||
// 数据表名(不包含表前缀)
|
||||
@@ -98,8 +98,8 @@ class Model
|
||||
$this->dbName = $config['db_name'];
|
||||
}
|
||||
|
||||
if (isset($config['attr_case'])) {
|
||||
$this->attrCase = $config['attr_case'];
|
||||
if (is_null($this->attrCase)) {
|
||||
$this->attrCase = Config::get('db_attr_case');
|
||||
}
|
||||
|
||||
// 数据库初始化操作
|
||||
|
||||
@@ -928,21 +928,21 @@ abstract class Driver
|
||||
* 批量更新某字段
|
||||
* @access public
|
||||
* @param mixed $field 字段名
|
||||
* @param mixed $pk 主键名
|
||||
* @param mixed $dataSet 数据集
|
||||
* @param mixed $pk 主键名
|
||||
* @param mixed $dataSet 数据集
|
||||
* @param mixed $operator 运算符
|
||||
* @param array $options 参数表达式
|
||||
**/
|
||||
public function updateFieldAll($field,$pk,$dataSet,$operator = '=',$options = [])
|
||||
public function updateFieldAll($field, $pk, $dataSet, $operator = '=', $options = [])
|
||||
{
|
||||
$values = [];
|
||||
$values = [];
|
||||
$this->bind = array_merge($this->bind, !empty($options['bind']) ? $options['bind'] : []);
|
||||
$field = $this->parseKey($field);
|
||||
$pk = $this->parseKey($pk);
|
||||
if(in_array($operator,['+','-'])){
|
||||
$field = $this->parseKey($field);
|
||||
$pk = $this->parseKey($pk);
|
||||
if (in_array($operator, ['+', '-'])) {
|
||||
$operator = '= ' . $field . $operator;
|
||||
}
|
||||
|
||||
|
||||
$value = '';
|
||||
foreach ($dataSet as $key => $val) {
|
||||
if (is_array($val) && 'exp' == $val[0]) {
|
||||
@@ -953,22 +953,22 @@ abstract class Driver
|
||||
if (0 === strpos($val, ':') && isset($this->bind[substr($val, 1)])) {
|
||||
$value = $val;
|
||||
} else {
|
||||
$name = count($this->bind);
|
||||
$value = ':' . $_SERVER['REQUEST_TIME'] . '_' . $name;
|
||||
$this->bindParam( $_SERVER['REQUEST_TIME'] . '_' . $name, $val);
|
||||
$name = count($this->bind);
|
||||
$value = ':' . $_SERVER['REQUEST_TIME'] . '_' . $name;
|
||||
$this->bindParam($_SERVER['REQUEST_TIME'] . '_' . $name, $val);
|
||||
}
|
||||
}
|
||||
//没使用过非数字主键,怎么处理比较合适?
|
||||
$values[] = " WHEN " .$key." THEN " . $value;
|
||||
}
|
||||
|
||||
$sql = 'UPDATE ' . $this->parseTable($options['table']) . ' SET ' . $field . $operator . ' CASE ' . $pk . implode(' ', $values) . ' END ' ;
|
||||
$values[] = " WHEN " . $key . " THEN " . $value;
|
||||
}
|
||||
|
||||
$sql = 'UPDATE ' . $this->parseTable($options['table']) . ' SET ' . $field . $operator . ' CASE ' . $pk . implode(' ', $values) . ' END ';
|
||||
//查询条件需和WHEN THEN对一致
|
||||
$sql .= ' WHERE ' . $pk . ' in (' . implode(',',array_map([$this,'parseValue'],array_keys($dataSet))) . ')';
|
||||
$sql .= ' WHERE ' . $pk . ' in (' . implode(',', array_map([$this, 'parseValue'], array_keys($dataSet))) . ')';
|
||||
$sql .= $this->parseComment(!empty($options['comment']) ? $options['comment'] : '');
|
||||
return $this->execute($sql, $this->getBindParams(true), !empty($options['fetch_sql']) ? true : false);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量插入记录
|
||||
* @access public
|
||||
|
||||
Reference in New Issue
Block a user