我有一个url数组,可以获取一些插入数据库的数据。我正在使用php和pdo。我需要看看一旦完成后从整个阵列插入了多少,目前我已经:
(array(
'http://www.example.com/1',
'http://www.example.com/2',
'http://www.example.com/3'))
foreach ($line->get_items() as $item){
pdo insert here...
$count = $q->rowCount();
print("Added $count Items.\n");
}
正如预期的那样,每次插入时都会返回计数,所以我可能会得到: 已添加1项添加1项添加1项
如何将所有插入汇总在一起以查看总共插入了多少?
答案 0 :(得分:1)
我知道你得到了肖恩的答案,但我只想告诉你另一种方法,只用一个SQL查询来做你想做的事。 INSERT命令支持一次插入多行。
语法如下:
INSERT INTO tbl_name
(a,b,c)
VALUES
(1,2,3),
(4,5,6),
(7,8,9);
因此,在您的情况下,您可以将其他行添加到数组中,然后将它们全部添加到查询中。 $ count将包括插入的所有行。
<?php
$inserts = array();
foreach ($line->get_items() as $item){
$inserts[] = "({$item['col1']},{$item['col2']})";
}
$sql = "INSERT INTO items(col1,col2) VALUES " . implode(",", $inserts);
//pdo insert here...
$count = $q->rowCount();
print("Added $count Items.\n");
这比使用一堆查询稍微有效。
答案 1 :(得分:0)
只需使用计数器并在每个pdo插入后添加+1,您的代码将
(array(
'http://www.example.com/1',
'http://www.example.com/2',
'http://www.example.com/3'))
$c = 0;
foreach ($line->get_items() as $item){
pdo insert here...
$count = $q->rowCount();
$c++; //or $c = $c +1 ;
}
Echo $c ;