これが可能かどうか疑問に思っています。検索しましたが、あきらめようとしているものは何も見つかりませんでした。
たとえば、次のことを実行しようとしています。foreachは単一のクエリに変換されるため、使用したくないことに注意してください。
$a = (1,2,3);
$b = ('john','Rob','Stuffs');
$c = ('doe','roe','soe');
$sql = "update ppl set firstname = $b, lastname = $c where id = $a";
インサートについても同じことが言えます。
$sql = "insert into ppl (firstname,lastname) value ($b,$c)";
私がこれをやろうとしている主な理由は、dbを少し最適化することです。(この方法が可能な場合)1つの単一クエリに変換できる単一のクエリがたくさんあります。
前もって感謝します。
if (count($a) <= 0)
return; // nothing to do
$sql = "INSERT INTO table (id, firstname, lastname) VALUES";
while (count($a) > 0)
{
$id = array_shift($a);
$fname = array_shift($b);
$lname = array_shift($c);
$sql .= sprintf("('%s', '%s', '%s'),", mysql_real_escape_string($id), mysql_real_escape_string($fname), mysql_real_escape_string($lname));
}
$sql = substr($sql, 0, -1); //remove last comma
$sql .= " ON DUPLICATE KEY UPDATE firstname=VALUES(fname), lastname=VALUES(lname)";
//run your sql
これにより、それらすべてを一度に実行できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加