ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

thinkphp使用sql语句大批量新增数据(效率会比使用saveAll效率高)

2021-04-15 12:34:58  阅读:222  来源: 互联网

标签:insert saveAll uid title sql time thinkphp message


  /**
   * 发送系统消息
   * @param $title 消息标题
   * @param $content 消息内容
   */
  public function systemMessage($title, $content = '') {
    $uid_arr = User::build() -> column('uid'); // 用户uid列表
    $insert_list = [];
    $time = time();
    foreach ($uid_arr as $uid) {
      $message['uid'] = $uid;
      $message['title'] = $title;
      $message['content'] = $content;
      $message['type'] = 'system';
      $message['create_time'] = $time;
      $message['update_time'] = $time;
      $insert_list[] = $message;
    }
    $sql = "insert into `cy_user_message` (`uid`,`title`,`content`,`type`,`create_time`,`update_time`) values ";
    foreach ($insert_list as $insert_data) {
      $n = 0;
      foreach ($insert_data as $key => $value) {
        $n ++;
        if ($n == 1) {
          $sql .= "('";
        }
        $sql .= $value;
        if ($n != count($insert_data)) {
          $sql .= "','";
        } else {
          $sql .= "'),";
        }
      }
    }
    $sql = substr($sql, 0, strlen($sql) - 1);
    try {
      Db::query($sql);
    } catch (\Exception $e) {
      throw new \think\Exception($e -> getMessage());
    }
  }

 

标签:insert,saveAll,uid,title,sql,time,thinkphp,message
来源: https://www.cnblogs.com/seanpan/p/14661871.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有