Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. public static function insertOrUpdateBatch(string $tableName, array $rows){
  2. $first = reset($rows);
  3.  
  4. $columns = implode( ', ',
  5. array_map( function( $value ) { return "$value"; } , array_keys($first) )
  6. );
  7.  
  8. $values = implode( ', ', array_map( function( $row ) {
  9. return '('.implode( ', ',
  10. array_map( function( $value ) { return '"'.str_replace('"', '""', $value).'"'; } , $row )
  11. ).')';
  12. } , $rows )
  13. );
  14.  
  15. $updates = implode( ', ',
  16. array_map( function( $value ) { return "$value = VALUES($value)"; } , array_keys($first) )
  17. );
  18.  
  19. $sql = "INSERT INTO {$tableName}({$columns}) VALUES {$values} ON DUPLICATE KEY UPDATE {$updates}";
  20.  
  21. return \DB::statement( $sql );
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement