0

我正在尝试基于循环插入多行。
此代码仅插入循环中的第一项,然后忽略循环的其余部分
我知道循环正确计数为echo“输出值正常”

$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++;
}
4

1 回答 1

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));
于 2013-05-26T01:38:17.710 回答