CoreMVC  ·下载 ·文档 ·模块 | ·Hello World ·框架结构

core::updates

(CoreMVC 1.0)

core::updates — 修改数据库中符合条件的数据



◎描述
int core::updates ( [ mixed $table = null [, mixed $set = null [, mixed $where = null [, mixed $other = null [, string $class = null ] ] ] ] ] )

int core::updates ( string $sql , array $param , true [, mixed $other = null [, string $class = null ] ] )

该方法可以根据条件修改数据库中的数据。
◎参数
table
表名参数拼装后会跟在UPDATE之后,可以是字符串,也可以是数组。
┌───────────────────────┬───────────────────────┐
│        参数类型           │       SQL语句的结果          │
├───────────────────────┼───────────────────────┤
│null                     │UPDATE 前缀+类名               │
├───────────────────────┼───────────────────────┤
│'table1'                   │UPDATE table1                 │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┥
│array('table1')                │UPDATE table1                 │
├───────────────────────┼───────────────────────┤
│array('t1'=>'table1')             │UPDATE table1 AS t1              │
├───────────────────────┼───────────────────────┤
│array(array('LOW_PRIORITY','IGNORE'),'table1')│UPDATE LOW_PRIORITY IGNORE table1       │
└───────────────────────┴───────────────────────┘
set
设置参数拼装后会跟在SET语句之后,可以是字符串,也可以是数组或二维关联数组。触发条件是赋值参数为空值。
┌───────────────────────┬───────────────────────┬───────────┐
│        参数类型           │       SQL语句的结果          │  占位参数数组值  │
├───────────────────────┼───────────────────────┼───────────┤
│'c1=md5(c2)'                 │SET c1=md5(c2)                │           │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┥
│array('c1=DEFAULT','c2=DEFAULT')       │SET c1=DEFAULT,c2=DEFAULT           │           │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1'=>'s1','c2'=>array('s2','s3'))   │SET c1=?,c2=CONCAT_WS(',',?,?)        │array('s1','s2','s3') │
└───────────────────────┴───────────────────────┴───────────┘
where
条件参数拼装后会跟在WHERE之后,可以是字符串,也可以是无限层的混合数组,具体方法如下。
┌───────────────────────┬───────────────────────┬───────────┐
│        参数类型           │       SQL语句的结果          │  占位参数数组值  │
├───────────────────────┼───────────────────────┼───────────┤
│null                     │                       │           │
├───────────────────────┼───────────────────────┼───────────┤
│'c1=1 AND c2>=c3'               │WHERE c1=1 AND c2>=c3             │           │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┥
│array('c1=1','c2>=c3')            │WHERE c1=1 AND c2>=c3             │           │
├───────────────────────┼───────────────────────┼───────────┤
│array(array('c1=1','c2>=c3'),'c4=1')     │WHERE (c1=1 OR c2>=c3) AND c4=1        │           │
├───────────────────────┼───────────────────────┼───────────┤
│array(array(array('c1=1','c2>=c3'),'c4=1'))  │WHERE (c1=1 AND c2>=c3 OR c4=1)        │           │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1'=>'s1','c2'=>array('s2','s3'))   │WHERE c1=? AND c2 IN (?,?)          │array('s1','s2','s3') │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1 LIKE ?'=>'%s%')           │WHERE c1 LIKE ?                │array('%s%')     │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1 BETWEEN ? AND ?'=>array(100,200))  │WHERE c1 BETWEEN ? AND ?           │array(100,200)    │
└───────────────────────┴───────────────────────┴───────────┘
other
其他参数拼装后会跟在整个SQL语句之后,可以是字符串,也可以是数组或二维混合数组。该参数可以接受page下标的分页指令。
┌───────────────────────┬───────────────────────┬───────────┐
│        参数类型           │       SQL语句的结果          │  占位参数数组值  │
├───────────────────────┼───────────────────────┼───────────┤
│null                     │                       │           │
├───────────────────────┼───────────────────────┼───────────┤
│'ORDER BY c1 DESC'              │ORDER BY c1 DESC               │           │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┥
│array('ORDER BY'=>'c1','LIMIT'=>array(1,5))  │ORDER BY ?,LIMIT ?,?             │array('c1',1,5)    │
└───────────────────────┴───────────────────────┴───────────┘
class
当表名为空值时会以该类名加前缀作为表名,当该值还为空时PHP 5.3会取延迟绑定的类名加前缀作为表名。
sql
修改的SQL语句,支持问号形式的占位符。
param
配合SQL语句和占位符对应的参数数组。
◎返回值
返回成功修改的条数。
◎修改日志
版本	描述
1.1 从该版本起支持SQL语句和参数的写法。
◎例子
修改数据的使用方法

《test.php》
<?php
// 修改记录。 
$int core::updates('pre_test',array('name'=>'a'),array('id'=>1)); //返回成功修改的个数

// 直接使用SQL语句修改记录。 
$int core::updates('UPDATE pre_test SET name=? WHERE id=?)',array('a',1),true); //返回成功修改的个数

// 修改排序的一条记录。 
$int core::updates('pre_test',array('name'=>'c'),array('name'=>'a'),array('ORDER BY id','LIMIT 1')); //返回成功修改的个数

// 使用类名修改记录。 
$int core::updates(null,array('name'=>'a'),array('id'=>1),null,'test'); //使用前缀+类名作为表名,返回成功修改的个数

// 使用类名修改记录。 
class test extends core { }
$int test::updates(null,array("name='a'"),array('id'=>1)); //使用前缀+类名作为表名(PHP 5.3以上有效),返回成功修改的个数
?>



CoreMVC是PHP的一款小巧精致的MVC框架,遵循New BSD协议发布。