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 originalSQLSTATE
[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 originalpublic static function registrar_seguimiento($nsp_data,$nsp_data_pv) {
try {
$cnBD = Conexion::getConexion();
$cnBD->beginTransaction();
$query_registrar = $cnBD->prepare('CALL sp_seguimiento_pap_registrar(?,?,?,?,?,?,?,?,?,?)');
$query_registrar->bindParam(1,$nsp_data["nsp_usuario"],PDO::PARAM_INT,11);
$query_registrar->bindParam(2,date("Y-m-d",strtotime($nsp_data["nsp_fecha_requerimiento"])),PDO
::PARAM_STR); $query_registrar->bindParam(3,date("Y-m-d",strtotime($nsp_data["nsp_fecha_ultimo_contacto"])),PDO
::PARAM_STR); $query_registrar->bindParam(4,date("Y-m-d",strtotime($nsp_data["nsp_fecha_proximo_contacto"])),PDO
::PARAM_STR); $query_registrar->bindParam(5,$nsp_data["nsp_contacto"],PDO::PARAM_INT,11);
$query_registrar->bindParam(6,$nsp_data["nsp_estatus"],PDO::PARAM_INT,11);
$query_registrar->bindParam(7,$nsp_data["nsp_actividad"],PDO::PARAM_INT,11);
$query_registrar->bindParam(8,$nsp_data["nsp_referencia"],PDO::PARAM_INT,11);
$query_registrar->bindParam(9,$nsp_data["nsp_unidad_negocio"],PDO::PARAM_INT,11);
$query_registrar->bindParam(10,trim($nsp_data["nsp_observaciones"]),PDO
::PARAM_STR,500); $query_registrar->execute();
$result = $query_registrar->fetch(PDO::FETCH_ASSOC);
if (isset($result["ID"])) { $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";
for ($ni=0;$ni<count($nsp_data_pv);$ni++){ $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']."'),";
}
$smt = $cnBD->prepare($sql);
$smt->bindParam(1,$result["ID"],PDO::PARAM_INT,11);
$smt->bindParam(2,$nsp_data_pv["nsp_programa"],PDO::PARAM_INT,11);
$smt->bindParam(3,$nsp_data_pv["nps_campana_programa"],PDO::PARAM_INT,11);
$smt->bindParam(4,$nsp_data_pv["nsp_periodo_programa"],PDO::PARAM_INT,11);
$smt->bindParam(5,$nsp_data_pv["nsp_valor_venta"],PDO::PARAM_STR);
$smt->execute();
}
$cnBD->commit();
} catch (PDOException $e) {
echo $e->getMessage();
$cnBD->rollback();
}
}
mi SP devuelve el id del ultimo registro insertado ayuda