Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2016, 12:38
BlackJccl1
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 1 mes
Puntos: 2
Error al usar PDO - beginTransaction

Hola ha todos como están verán estoy tratando de hacer una Transaccion con PDO pero me muestra el siguiente error
Código PHP:
Ver original
  1. SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active.  Consider using PDOStatement::fetchAll().  Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.NULL
mi consulta es la siguiente
Código PHP:
Ver original
  1. public static function registrar_seguimiento($nsp_data,$nsp_data_pv) {
  2.         try {
  3.             $cnBD = Conexion::getConexion();
  4.             $cnBD->beginTransaction();
  5.             $query_registrar = $cnBD->prepare('CALL sp_seguimiento_pap_registrar(?,?,?,?,?,?,?,?,?,?)');
  6.             $query_registrar->bindParam(1,$nsp_data["nsp_usuario"],PDO::PARAM_INT,11);
  7.             $query_registrar->bindParam(2,date("Y-m-d",strtotime($nsp_data["nsp_fecha_requerimiento"])),PDO::PARAM_STR);
  8.             $query_registrar->bindParam(3,date("Y-m-d",strtotime($nsp_data["nsp_fecha_ultimo_contacto"])),PDO::PARAM_STR);
  9.             $query_registrar->bindParam(4,date("Y-m-d",strtotime($nsp_data["nsp_fecha_proximo_contacto"])),PDO::PARAM_STR);
  10.             $query_registrar->bindParam(5,$nsp_data["nsp_contacto"],PDO::PARAM_INT,11);
  11.             $query_registrar->bindParam(6,$nsp_data["nsp_estatus"],PDO::PARAM_INT,11);
  12.             $query_registrar->bindParam(7,$nsp_data["nsp_actividad"],PDO::PARAM_INT,11);
  13.             $query_registrar->bindParam(8,$nsp_data["nsp_referencia"],PDO::PARAM_INT,11);
  14.             $query_registrar->bindParam(9,$nsp_data["nsp_unidad_negocio"],PDO::PARAM_INT,11);
  15.             $query_registrar->bindParam(10,trim($nsp_data["nsp_observaciones"]),PDO::PARAM_STR,500);
  16.             $query_registrar->execute();
  17.             $result = $query_registrar->fetch(PDO::FETCH_ASSOC);
  18.             if (isset($result["ID"])) {
  19.                 $sql = "INSERT INTO seg_pap_servicio(seg_pap_id,jc_servicio_id,seg_pap_programa_id,seg_pap_programa_fecha,seg_pap_valor_venta) VALUES";
  20.                 for ($ni=0;$ni<count($nsp_data_pv);$ni++){
  21.                     $sql.="(".$result["ID"].",".$nsp_data_pv[$ni]['nsp_programa'].",".$nsp_data_pv[$ni]['nps_campana_programa'].",".$nsp_data_pv[$ni]['nsp_periodo_programa'].",'".$nsp_data_pv[$ni]['nsp_valor_venta']."'),";
  22.                 }
  23.                 $sql = substr($sql,0,strlen($sql)-1);
  24.                 $smt = $cnBD->prepare($sql);
  25.                 $smt->bindParam(1,$result["ID"],PDO::PARAM_INT,11);
  26.                 $smt->bindParam(2,$nsp_data_pv["nsp_programa"],PDO::PARAM_INT,11);
  27.                 $smt->bindParam(3,$nsp_data_pv["nps_campana_programa"],PDO::PARAM_INT,11);
  28.                 $smt->bindParam(4,$nsp_data_pv["nsp_periodo_programa"],PDO::PARAM_INT,11);
  29.                 $smt->bindParam(5,$nsp_data_pv["nsp_valor_venta"],PDO::PARAM_STR);
  30.                 $smt->execute();
  31.             }
  32.             $cnBD->commit();
  33.         } catch (PDOException $e) {
  34.             echo $e->getMessage();
  35.             $cnBD->rollback();
  36.         }
  37.     }
mi SP devuelve el id del ultimo registro insertado ayuda