挿入クエリにforeachループを使用しています。同時にそれらがdatabseに存在するかどうか、私は価値と一致しています。値が存在する場合、その特定のキーをスキップして、挿入する次のキー値に移動します。再度値が存在するかどうかをチェックし、値がdatavaseに存在しない場合はレコードを保存します。foreachループを使用した挿入クエリの問題
私はこれを行うために以下のアプローチを使用しました。
foreach($inputs as $key => $value) {
if ($key == 'empty') continue;
$check=mysql_query("select * from from t_atc_list where s_title='$key' and r_name='$value'");
if(mysql_num_rows($check)!=0){ continue; }
$result = mysql_query("INSERT into t_atc_list(a_name, s_title, r_name) values('$album','$key', '$value')")or die(mysql_error());
echo "<strong>$key</strong> Singer <strong>$value</strong></br>";
}
注: (1)。重複したエントリであるvalueがすでに存在する場合、値は挿入されます。 (2)。 "mysql_num_rows():与えられた引数が有効なMySQL結果リソースではありません"という警告が表示されます。
あなたは同じタイトル+名前の組み合わせを(だけでなく、コードのこの部分では)必要はありません場合は、一意のインデックスにそれを行うことを検討。 'INSERT IGNORE'または' INSERT ... ON UPDATE KEY UPDATE a_name =? 'を実行するだけで、最初のクエリを完全に削除することができます。また、義務的な[Bobby Tables警告](http://bobby-tables.com/)。 – Amadan