0

こんにちは、 foreachで重複するエントリをスキップする必要があります。残りのエントリを続行するよりも、これを行う方法を教えてください。

foreach($arr as $key=>$arr1)
{
    echo "<pre>";

$insert=mysql_query("INSERT INTO auth_user(id,username,first_name,last_name,email,password,is_active,date_joined) VALUES('".$key."','".$arr1['username']."','".$arr1['firstname']."','".$arr1['lastname']."','".$arr1['email']."','NULL','".$arr1['is_active']."','".$arr1['date_joined']."')",$conn1);

echo $insert .'<br/>';
if($insert)
    {
        echo "DATA MIGRATE FOR USER ".$key;
        $insert1=mysql_query("INSERT INTO stylequiz_score(user_id,style_quiz_score,style_quiz_answer) VALUES('".$key."','".$arr1['style_quiz_score']."','".$arr1['style_quiz_answer']."')",$conn1);
    }
    else
    {
       echo  ("Error In MIGRATION FOR USER ".$key . mysql_error());

    }
}
4

3 に答える 3

2

INSERT ステートメントの IGNORE 修飾子を使用します。

$insert1=mysql_query("INSERT IGNORE INTO stylequiz_score(user_id,style_quiz_score,style_quiz_answer) VALUES('".$key."','".$arr1['style_quiz_score']."','".$arr1['style_quiz_answer']."')",$conn1);

挿入される行で重複キー エラーが発生する場合、この修飾子により、エラーなしで挿入がスキップされます。

于 2013-02-01T05:32:38.010 に答える
1

array_unique は、配列内のすべての重複値を削除します。あなたの場合、このようにしてみてください。

$arr = array_unique($arr);

追加の機能を実行する必要はありません。

于 2013-02-01T05:20:38.460 に答える