本文实例讲述了YII框架批量插入数据的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
public function insertSeveral( $table , $array_columns )
{
$sql = '' ;
$params = array ();
$i = 0;
foreach ( $array_columns as $columns ) {
$names = array ();
$placeholders = array ();
foreach ( $columns as $name => $value ) {
if (! $i ) {
$names [] = $this ->_connection->quoteColumnName( $name );
}
if ( $value instanceof CDbExpression) {
$placeholders [] = $value ->expression;
foreach ( $value ->params as $n => $v )
$params [ $n ] = $v ;
} else {
$placeholders [] = ':' . $name . $i ;
$params [ ':' . $name . $i ] = $value ;
}
}
if (! $i ) {
$sql = 'INSERT INTO ' . $this ->_connection->quoteTableName( $table )
. ' (' . implode( ', ' , $names ) . ') VALUES ('
. implode( ', ' , $placeholders ) . ')' ;
} else {
$sql .= ',(' . implode( ', ' , $placeholders ) . ')' ;
}
$i ++;
}
return $this ->setText( $sql )->execute( $params );
}
$rows = array (
array ( 'id' => 1, 'name' => 'John' ),
array ( 'id' => 2, 'name' => 'Mark' )
);
$command = Yii::app()->db->createCommand();
$command ->insertSeveral( 'users' , $rows );
|
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。