mysql分批插入数据

mysql分批插入数据

FengXin
2024-03-20 / 0 评论 / 65 阅读 / 正在检测是否收录...
// 插入数据的方法
    function insetData($Data, $hid, $cateId, $mysqli) {
      // 创建预处理语句
      $stmt = $mysqli->prepare(
        "INSERT INTO love_learn_class (name, getnoun, noun, price, queryplat, docking, content, addtime, fenlei) 
         VALUES (?, ?, ?, ?, ?, ?, ?, NOW(), ?)"
      );
      // 循环插入数据
      foreach ($Data as $value) {
        // 绑定参数
        $stmt->bind_param('sssssssi', $value['name'], $value['cid'], $value['cid'], $value['realPrice'], $hid, $hid, $value['content'], $cateId);
        // 执行插入操作
        $stmt->execute();
      }
      // 在所有插入操作完成后关闭预处理语句
      $stmt->close();
    }

    $classTotal = count($classData); // 数据条数
    $singleCount = 100; // 每次插入数据的条数

    // 数据小于最大单次插入数,直接插入,并跳出循环
    if ($classTotal <= $singleCount) {
      insetData($classData, $hid, $cateId, $mysqli);
    } else {
      // 需要循环的次数
      $loopCount = ceil($classTotal / $singleCount);
      // 当前的数据条数
      $currentCount = 0;
      // 循环插入数据
      while ($loopCount > 0) {
        $istClass = array_slice($classData, $currentCount, $singleCount);
        insetData($istClass, $hid, $cateId, $mysqli);
        $currentCount += $singleCount;
        $loopCount--;
      }
    }
0

评论

博主关闭了所有页面的评论