<?php
$userData = array();
while (anything to create a loop) {
$value1 = $result1_from_loop;
$value2 = $result2_from_loop;
$value3 = $result3_from_loop;
$userData[] = '("'.$value1.'", "'.$value2.'", "'.$value3.'")';
} // THIS ENDS THE WHLE OR FOR LOOP
$query = 'INSERT INTO users (data1,data2,data3) VALUES' . implode(',', $userData);
mysql_query($query);
?>
上記のコードは、上記のようにテーブルusers
に複数のレコードを挿入するのに完全に機能し、非常に高速です。MySQLとPHPを使用して単一のクエリで複数の行を更新する
しかし、以前のようにループを通過した後に同じメソッドを使用して更新しようとしています。私はこれをどのように達成するのか分かりません。私はこのような何かしたい
:私は上記のコードを修正するために近接していない知っている
<?php
$userData = array();
while (Loop statement) {
$value1 = $result1_from_loop;
$value2 = $result2_from_loop;
$value3 = $result3_from_loop;
$userData[] = '("'.$value1.'", "'.$value2.'", "'.$value3.'")';
} // This ends the WHLE or FOR loop
$query = 'UPDATE users SET(data1,data2,data3) VALUES' . implode(',',$userData) WHERE data2=$value2
mysql_query($query);
を、構文は次のとおりであっても間違っています。私はそれを貼り付けて、私が達成したいもののアイデアを示しました。 WHERE
ステートメントでは、どのようにdata2
がそれぞれの値を知るようになるでしょう$value2
?
あなたのUPDATE構文が正しくありません。 –
はい、それは正しいことを意味していませんでした。私はちょうどそこに置いて、何をしたいのかという考えを持っています。私は構文を修正することすらできません。私はこのメソッドでINSERTを書く方法しか知りません。 –
あなたのコードは[** SQLインジェクション**](https://en.wikipedia.org/wiki/SQL_injection)攻撃に対して脆弱です。あなたは[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)または[** PDO **](https ://secure.php.net/manual/en/pdo.prepared-statements.php)ドライバ。 [**この記事**](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)には、いくつかの良い例があります。 –