计算从数组插入mysql db的总项数

时间:2015-12-13 22:23:43

标签: php mysql arrays pdo count

我有一个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项

如何将所有插入汇总在一起以查看总共插入了多少?

2 个答案:

答案 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 ;