php pdo 多条,php – PDO MySQL:在一个查询中插入多行

你好,我正在做一个类在pdo中进行多重插入.

这是这样的

INSERT INTO $table (key1,key2,key3,etc) VALUE (value1,value2,value3,etc), (value1,value2,value3,etc), (value1,value2,value3,etc)

搜索后我发现我必须建立类似的东西

INSERT INTO $table (key1,key2,key3,etc) VALUE (:key1,:key2,:key3,etc), (:key1,:key2,:key3,etc), (:key1,:key2,:key3,etc)

然后执行这个$this-> execute($data);

$data是哪里

0 =>

array

'key1' => 'value1'

'key2' => 'value2'

'key3' => 'value3'

1 =>

array

'key1' => 'value1'

'key2' => 'value2'

'key3' => 'value3'

etc

问题是我仍然收到一个错误Array到字符串转换$insert-> execute($data);我该怎么解决?

这是我正在做的一个片段.

public function multipleInsert($table, $data = array())

{

# INSERT (name) VALUE (value),(value)

if (count($data) > 1)

{

$fieldnames = array_keys($data[0]);

$count_inserts = count(array_values($data));

$count_values = count(array_values($data[0]));

# array(????) untill x from first data

for($i = 0; $i < $count_values; $i++)

{

$placeholder[] = '?';

}

# array((????),(????),(????)) for query

for ($i=0; $i < $count_inserts; $i++)

{

$placeholders[] = '('. implode(',',$placeholder) . ')';

}

$query = 'INSERT INTO '. $table;

$query .= '(`'. implode('`, `', $fieldnames) .'`)';

$query .= ' VALUES '. implode(', ', $placeholders);

$insert = $this->start->prepare($query);

$i = 1;

foreach($data as $item)

{

foreach ($item as $key => $value)

{

$insert->bindParam($i++, $item[$key]);

}

}

echo $query;

$insert->execute();

$return['status'] = true;

$return['lastid'] = $this->start->lastInsertId();

return $return;

}

else

{

die('$data is less then two array, use single insert instead.');

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值