ホームページ  >  記事  >  バックエンド開発  >  1 つの SQL ステートメントで複数のレコードを更新します

1 つの SQL ステートメントで複数のレコードを更新します

WBOY
WBOYオリジナル
2016-07-25 09:02:211334ブラウズ
フォームから 2 つの配列を取得します。1 つはフィールド データの更新用で、もう 1 つは条件配列です。ここでは id を使用します。

出典: http://www.liuhai.org/sql-set-key-case-when-then

  1. function save_category_district($parame,$id){
  2. if(!is_array($parame) || !is_array($id)) return false;
  3. $sql="UPDATE ".table.'category_district'.' SET ';
  4. foreach($parame as $key=>$val){
  5. $csql.=$key.'=CASE id';
  6. foreach($parame[$key] as $key=>$val) {
  7. $csql.=" WHEN {$id[$key]} THEN '{$val}'"; // ここでの ID のキーは更新するデータのキーと同じである必要があることに注意してください。はフォームの数値キーです
  8. }
  9. $csql.=' END,';
  10. }
  11. $sql.=rtrim($csql,','); //このステップは最後の END の後のカンマを削除します
  12. $id=implode(',', $id); //ここではidが文字列になります
  13. $sql.=" WHERE id IN ({$id})";
  14. if(!$this->mydb-> query($sql)) return false;
  15. return true;
  16. }
コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。