在一系列插入查询中,最后一个pdo插入不提交到数据库

时间:2014-02-11 15:41:18

标签: php sql pdo

我使用预准备语句将一系列行插入数据库。我遇到的问题是最后一次迭代没有插入。代码如下:

          $sql = 'INSERT INTO ReportDataLoggerTbl (
              date,
              dataTypeID,
              ClientID,
              dataVal
          ) VALUES (
              :timestamp,
              :dataType,
              :clientID,
              :encoded
          )';
      $cdsLink->beginTransaction();

      $q = $cdsLink->prepare($sql);
      foreach ($orderRows as $orderInfo) {
         // Get client
         $clientID = isset($orderInfo['ClientID']) === true ? $orderInfo['ClientID'] : 0;

         // Encode array
         $encoded = json_encode($orderInfo);

         $q->bindvalue(':timestamp', $timestamp, \PDO::PARAM_INT);
         $q->bindvalue(':dataType', $dataType, \PDO::PARAM_INT);
         $q->bindvalue(':clientID', $clientID, \PDO::PARAM_INT);
         $q->bindvalue(':encoded', $encoded, \PDO::PARAM_STR);

          $q->execute();
      }//end foreach

      $cdsLink->commit();

总共有33套要插入数据库。完成所有操作后,前32个在数据库中,而最后一个不在。有任何想法吗?谷歌并没有真正帮助这个。

0 个答案:

没有答案