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

core::deletes

(CoreMVC 1.0)

core::deletes — 删除数据库中符合条件的数据



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

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

该方法可以根据条件选择数据,可以根据最后一个参数定义返回结果的形式。该方法也提供直接通过SQL语句和参数选择数据。
◎参数
field
字段参数拼装后会跟在DELETE之后,可以是字符串,也可以是数组。
┌───────────────────────┬───────────────────────┐
│        参数类型           │       SQL语句的结果          │
├───────────────────────┼───────────────────────┤
│null                     │DELETE                    │
├───────────────────────┼───────────────────────┤
│'LOW_PRIORIT QUICK IGNORE'          │DELETE LOW_PRIORIT QUICK IGNORE        │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┥
│array('t1.*','t2.*')             │DELETE t1.*,t2.*               │
├───────────────────────┼───────────────────────┤
│array(array('LOW_PRIORIT','IGNORE'),'t1.*')  │DELETE LOW_PRIORIT IGNORE t1.*        │
└───────────────────────┴───────────────────────┘
table
表名参数拼装后会跟在FROM之后,可以是字符串,也可以是数组,和字段的格式除默认值以外基本一样。
┌───────────────────────┬───────────────────────┐
│        参数类型           │       SQL语句的结果          │
├───────────────────────┼───────────────────────┤
│null                     │                       │
├───────────────────────┼───────────────────────┤
│'table1,table2'                │FROM table1,table2              │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┥
│array('table1','table2')           │FROM table1,table2              │
├───────────────────────┼───────────────────────┤
│array('table1 INNER JOIN table2 USING (id)') │FROM table1 INNER JOIN table2 USING (id)   │
├───────────────────────┼───────────────────────┤
│array('t1'=>'table1','t2'=>'table2')     │FROM table1 AS t1,table2 AS t2        │
└───────────────────────┴───────────────────────┘
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                     │                       │           │
├───────────────────────┼───────────────────────┼───────────┤
│'LIMIT 10'                  │LIMIT 10                   │           │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┥
│array('LIMIT'=>10)              │LIMIT ?                    │array(10)       │
└───────────────────────┴───────────────────────┴───────────┘
class
当表名为空值时会以该类名加前缀作为表名,当该值还为空时PHP 5.3会取延迟绑定的类名加前缀作为表名。
sql
删除的SQL语句,支持问号形式的占位符。
param
配合SQL语句和占位符对应的参数数组。
◎返回值
返回成功删除的条数。
◎修改日志
版本	描述
1.1 从该版本起支持SQL语句和参数的写法。
◎例子
修改数据的使用方法

《test.php》
<?php
// 删除记录。 
$int core::deletes(null,'pre_test',array('id'=>1)); //返回成功删除的个数

// 直接使用SQL语句删除记录。 
$int core::deletes('DELETE FROM pre_test where id=?)',array(1),true); //返回成功删除的个数

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

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

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



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