ループ内でsqlクエリを回避する必要があることをGoogleコードで示唆しています。その理由は、データベースへの複数のラウンドトリップがスクリプトを大幅に遅くするためです。それらが与える質問の例はこれです。ループ内のSQLクエリ
$userData = array();
foreach ($userList as $user) {
$userData[] = '("'.$user['first_name'].'", "'.$user['last_name'].'")';
}
$query = 'INSERT INTO users (first_name,last_name) VALUES'.implode(',',$userData);
mysql_query($query);
私の質問は... 1.どのように重要なことは、ループの外にクエリを維持することであり、それは常に回避することがありますか? 2.この同じロジックを使用してSELECT文を実装するにはどうすればよいですか。
つまり、このクエリがあるとしましょう。
$index=0;
while ($index < count($id)) {
$result[] = mysql_query("SELECT * FROM tblInfo WHERE site_id = '".$id[$index]."' ");
$index++;
}
どのようにこのSELECT文をループ外で実行できますか?私はこれよりはるかに複雑なSELECTステートメントを大量に持っています。したがって、必要と思われる場合は、これらのクエリをループから取り除きたいと思います。誰かがGoogleと同意している場合は、サンプルコードを投稿してください。
すべての応答を高く評価します。
最初の例は意味をなさない。私はあなたの "スクリプト"が絶えず大量の挿入をしなければならないとは思っていません。一度の操作では、このようなループは重要ではありません。選択については、SQL –
を学んでください.SQLは手続き型ではなく、SETベースです。 –