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

core::inserts

(CoreMVC 1.0)

core::inserts — 将数据一次插入到数据库中去



◎描述
int core::inserts ( [ mixed $table = null [, mixed $column = null [, mixed $value = null [, mixed $other = null [, string $class = null ] ] ] ] ] )

int core::inserts ( mixed $table , array $set [, null [, mixed $other = null [, string $class = null ] ] ] )

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

该方法可以将数据插入到数据库中去,可以插入一条记录,也可以插入多条记录。
◎参数
table
表名参数拼装后会跟在INSERT之后,可以是字符串,也可以是数组。
┌───────────────────────┬───────────────────────┐
│        参数类型           │       SQL语句的结果          │
├───────────────────────┼───────────────────────┤
│null                     │INSERT 前缀+类名               │
├───────────────────────┼───────────────────────┤
│'table1'                   │INSERT table1                 │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┥
│array('table1')                │INSERT table1                 │
├───────────────────────┼───────────────────────┤
│array('t1'=>'table1')             │INSERT table1 AS t1              │
├───────────────────────┼───────────────────────┤
│array(array('DELAYED','IGNORE'),'table1')   │INSERT DELAYED IGNORE table1         │
└───────────────────────┴───────────────────────┘
column
字段参数拼装后会跟在表名之后,可以是字符串,默认时为空。
┌───────────────────────┬───────────────────────┐
│        参数类型           │       SQL语句的结果          │
├───────────────────────┼───────────────────────┤
│null                     │                       │
├───────────────────────┼───────────────────────┤
│'column1,column2'               │(column1,column2)               │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┥
│array('column1','column2')          │(column1,column2)               │
└───────────────────────┴───────────────────────┘
value
赋值参数拼装后会跟在VALUE之后,可以是字符串,也可以是数级或二维数组。注意该参数可以是插入一条记录也可以插入多条记录。
┌───────────────────────┬───────────────────────┬───────────┐
│        参数类型           │       SQL语句的结果          │  占位参数数组值  │
├───────────────────────┼───────────────────────┼───────────┤
│null                     │                       │           │
├───────────────────────┼───────────────────────┼───────────┤
│'null,100,ABS(-1)'              │VALUES (null,100,ABS(-1))           │           │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┥
│array(null,true,false,100,'ABS(-1)')     │VALUES (NULL,1,0,100,ABS(-1))         │           │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1'=>null,'c2'=>'s1')         │VALUES (?,?)                 │array(NULL,'s1')   │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1'=>array('s1','s2'))         │VALUES CONCAT_WS(',',?,?)           │array('s1','s2')   │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1'=>'s1','c2'=>array('s2','s3'))   │VALUES (?,CONCAT_WS(',',?,?))         │array('s1','s2','s3') │
├───────────────────────┼───────────────────────┼───────────┤
│array(array('1','2'),array('3','4'))     │VALUES (1,2),(3,4)              │           │
├───────────────────────┼───────────────────────┼───────────┤
│array(array('c1'=>'s1'),array('c2'=>'s2'))  │VALUES (?),(?)                │array('s1','s2')   │
└───────────────────────┴───────────────────────┴───────────┘
other
其他参数拼装后会跟在整个SQL语句之后,这里一般是字符串。
┌───────────────────────┬───────────────────────┬───────────┐
│        参数类型           │       SQL语句的结果          │  占位参数数组值  │
├───────────────────────┼───────────────────────┼───────────┤
│null                     │                       │           │
├───────────────────────┼───────────────────────┼───────────┤
│'SELECT c1,c2 FROM table1'          │SELECT c1,c2 FROM table1           │           │
└───────────────────────┴───────────────────────┴───────────┘
set
设置参数拼装后会跟在SET语句之后,这里只能是关联数组。触发条件是赋值参数为空值。
┌───────────────────────┬───────────────────────┬───────────┐
│        参数类型           │       SQL语句的结果          │  占位参数数组值  │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1'=>'s1','c2'=>array('s2','s3'))   │SET c1=?,c2=CONCAT_WS(',',?,?)        │array('s1','s2','s3') │
└───────────────────────┴───────────────────────┴───────────┘
class
当表名为空值时会以该类名加前缀作为表名,当该值还为空时PHP 5.3会取延迟绑定的类名加前缀作为表名。
sql
插入的SQL语句,支持问号形式的占位符。
param
配合SQL语句和占位符对应的参数数组。
◎返回值
返回成功插入的条数。
◎修改日志
版本	描述
1.1 从该版本起支持SQL语句和参数的写法。
◎例子
插入数据的使用方法

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

// 直接使用SQL语句插入一条记录。 
$int core::inserts('INSERT INTO pre_test (id,name) VALUES (?,?)',array(1,'a'),true); //返回成功插入的个数

// 从其他表选择插入多条记录。 
$int core::inserts('pre_test',array('id','name'),null,'SELECT id,name FROM pre_test2'); //返回成功插入的个数

// 插入多条记录。 
$arr = array(
    array(
'id'=>1,'name'=>'a'),
    array(
'id'=>2,'name'=>'b'),
);
$int core::inserts('pre_test','id,name',$arr); //返回成功插入的个数

// 插入需计算的记录。 
$arr = array(
    array(
1,"md5('a')"),
    array(
2,"md5('b')"),
);
$int core::inserts('pre_test',array('id','name'),$arr); //返回成功插入的个数

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

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



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