mysqli从循环中插入多行

时间:2013-05-26 01:35:14

标签: php

我正在尝试根据循环插入多行 此代码仅插入循环中的第一个项目,然后忽略循环的其余部分 我知道循环正在计数正确echo'输出值输出ok

$i = 1;
while ($i <= $count){

    foreach($html->find('.markuptag a') as $mystring){
        if(preg_match_all("|<a.*(?=href=\"([^\"]*)\")[^>]*>([^<]*)</a>|i", $mystring, $matches)){
            $a = $matches[2][0];
         }

        $query = "INSERT INTO mytable (`firstname`, `lastname`, `var_a`) VALUES ('$fistname', '$lastname', '$a')";

        $mysqli->query($query);//<< is there a better way?

    }
    $i++;
}

1 个答案:

答案 0 :(得分:5)

构建要插入的行数组,然后一次性插入它们。像这样:

$arr = []; // array() in PHP 5.3 and older
foreach(...) {
    ...
    $arr[] = "('$fistname', '$lastname', '$a')";
}
$mysqli->query("INSERT INTO mytable (`firstname`, `lastname`, `var_a`) VALUES "
    .implode(",",$arr));