Model_transact.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2. class Model_transact extends Lin_Model
  3. {
  4. function __construct(){
  5. parent::__construct();
  6. $this->load->database();
  7. $this->table = 'transact';
  8. $this->load_table('transact');
  9. }
  10. public function insert_batch($keys,$arr){
  11. $values=array_values($arr);
  12. $sql=$this->multArray2Insert("crowd_".$this->table,$keys,$values);
  13. $res=$this->db->query($sql);
  14. return $res;
  15. }
  16. /**
  17. * 多条数据同时转化成插入SQL语句
  18. * @ CreatBy:
  19. * @param string $table 表名
  20. * @$arr_key是表字段名的key:$arr_key=array("field1","field2","field3")
  21. * @param array $arr是字段值 数组示例 arrat(("a","b","c"), ("bbc","bbb","caaa"),('add',"bppp","cggg"))
  22. * @return string
  23. */
  24. private function multArray2Insert($table, $arr_key, $arr, $split = '`')
  25. {
  26. $arrValues = array();
  27. if (empty($table) || !is_array($arr_key) || !is_array($arr)) {
  28. return false;
  29. }
  30. $sql = "INSERT INTO %s( %s ) values %s ON DUPLICATE KEY UPDATE `updated_at`=".time();
  31. foreach ($arr as $k => $v) {
  32. $arrValues[$k] = "'" . implode("','", array_values($v)) . "'";
  33. }
  34. $sql = sprintf($sql, $table, "{$split}" . implode("{$split} ,{$split}", $arr_key) . "{$split}", "(" . implode(") , (", array_values($arrValues)) . ")");
  35. return $sql;
  36. }
  37. } //end class