批量更新问题

<?php  
//查询数据库返回的数据格式  
$newhouse_clicks = array(  
    1 => array('clicks'=>1,'type'=>1,'update_time'=>time()),  
    2 => array('clicks'=>2,'type'=>2,'update_time'=>time()),  
    3 => array('clicks'=>3,'type'=>3,'update_time'=>time()),  
    4 => array('clicks'=>4,'type'=>4,'update_time'=>time()),  
);  
    //获取所有的id  
    $newhouse_clicks_keys = array_keys($newhouse_clicks);  
    //拼接批量更新sql语句  
    $sql = "UPDATE newhouse_clicks SET ";  
    //合成sql语句  
    foreach ($newhouse_clicks[1] as $key => $value) {  
        $sql .= "{$key} = CASE id ";  
        foreach ($newhouse_clicks as $newhouse_clicks_key=>$newhouse_clicks_value) {  
  
            $sql .= sprintf("WHEN %d THEN %d ", $newhouse_clicks_key, $newhouse_clicks_value[$key]);  
        }  
        $sql .= "END, ";  
    }  
    //把最后一个,去掉  
    $sql = substr($sql, 0, strrpos($sql,','));   
    //合并所有id  
    $ids = implode(',', $newhouse_clicks_keys);  
    //拼接sql  
    $sql .= " WHERE ID IN ({$ids})";  
    echo $sql;  

 

posted @ 2018-05-08 14:07  setevn  阅读(122)  评论(0)    收藏  举报