Gracias por tus respuestas, modifique el codigo asi:
Controller:
Código PHP:
$fecha_enc = date('Y-m-d', strtotime($_POST['fecha_enc']));
$candidato = $_POST['candidato'];
$this->_encuestas->registrarEncuesta(
$this->getPostParam('titulo'),
$this->getPostParam('cargo'),
$this->getPostParam('departamento'),
$this->getPostParam('provincia'),
$this->getPostParam('distrito'),
$fecha_enc,
$candidato);
y en el model:
Código PHP:
public function registrarEncuesta($titulo, $cargo, $departamento, $provincia, $distrito, $fecha_enc, array $id_candidato)
{
try {
$this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->_db->beginTransaction(); // iniciar transacción
$a = $this->_db->prepare("INSERT INTO encuestas (id, titulo, id_cargo, id_pais, id_departamento, id_provincia, id_distrito, fecha_encuesta, fecha_registro, usuario_registrador) VALUES (null, :titulo, :cargo, 1, :departamento, :provincia, :distrito, :fecha_enc, now(), '" . Session::get('id_usuario') . "')"
)->execute(array(
':titulo' => $titulo,
':cargo' => $cargo,
':departamento' => $departamento,
':provincia' => $provincia,
':distrito' => $distrito,
':fecha_enc' => $fecha_enc)
);
$lastReciboId = $this->_db->lastInsertId();
if (!$a) {
throw new Exception("ERROR AL INGRESAR LOS DATOS");
} else {
for ($i=0; $i<count($id_candidato); $i++) {
$sql = "INSERT INTO opciones (id, id_encuesta, id_candidato) VALUES (null, :id_encuesta, :id_candidato)";
$b = $statement = $this->_db->prepare($sql);
$statement->execute(array(
':id_candidato' => $id_candidato[$i],
':id_encuesta' => $lastReciboId
));
}
if($a && $b) {
$this->_db->commit();
} else {
$this->_db->rollBack();
}
}
// echo 'Datos insertados correctamente';
} catch (PDOException $e) {
// si ocurre un error hacemos rollback para anular todos los insert
$this->_db->rollBack();
throw $e;
// echo $e->getMessage();
}
}
Ahra hare el editar, gracias