I try to load a txt, with coding format utf8
and with separators between lines Þ
and between fields ¶
.
I upload it with a form html
e input type = file
. I have the files sorted by mvc. And the version of php = 7.2.2
installed.
It turns out that when you click on the button and try to load the file into a table, you are throwing me the following error: Parse error: syntax error, unexpected '[', expecting ')'
It is in the file model line where is the function that receives array as paramaters: public function inserta_ventas
? To what is the error and / or what can be a more efficient way of doing the load, it should be mentioned that they are heavy files with thousands of lines?
Form
<form method="POST" action="../controles/load_ventas.php">
<br>
<label for="a_venta">Carga de datos:</label>
<input type="file" name="ventas" id="ventas">
<br>
<div class='col-xs-6'>
<h3 class='text-right'>
<input type="submit" name="registrar" id="registrar" class="btn btn-success" value="Carga">
</h3>
</div>
</form>
Controller
<?php
require "../config/Conexion.php";
require_once "../modelos/Ventas.php";
$ventas = new Ventas(); //objeto del modelo Ventas
$archivo = isset($_POST["ventas"])? limpiarCadena($_POST["ventas"]):""; //recibiendo archivo del form
$contenido = file_get_contents($archivo); //obteniendo contenido, formateado A UTF 8
$filas = explode("Þ", $contenido); //delimitador entre lineas del fichero
foreach ($filas as $linea) {
$campos = explode("¶", $linea); //dividiendo el string
if(!empty($campos[0])) {
$insert_vtas = $ventas->inserta_ventas($campos[0],$campos[1],$campos[2],$campos[3],$campos[4],
$campos[5],$campos[6],$campos[7],$campos[8],$campos[9],$campos[10],$campos[11],
$campos[12],$campos[13],$campos[14],$campos[15],$campos[16],$campos[17],
$campos[18],$campos[19],$campos[20],$campos[21],$campos[22],$campos[23],$campos[24],
$campos[25],$campos[26],$campos[27],$campos[28],$campos[29],$campos[30],$campos[31],
$campos[32],$campos[33],$campos[34],$campos[35],$campos[36],$campos[37],$campos[38],
$campos[39],$campos[40],$campos[41],$campos[42],$campos[43]);
}
}
?>
Model
<?php
//Incluyendo la conexión a la BD
require "../config/Conexion.php";
Class Ventas
{
//Implementando el constructor
public function __construct()
{
}
public function inserta_ventas($campos[0],$campos[1],$campos[2],$campos[3],$campos[4],
$campos[5],$campos[6],$campos[7],$campos[8],$campos[9],$campos[10],
$campos[11],$campos[12],$campos[13],$campos[14],$campos[15],$campos[16],$campos[17],
$campos[18],$campos[19],$campos[20],$campos[21],$campos[22],$campos[23],$campos[24],
$campos[25],$campos[26],$campos[27],$campos[28],$campos[29],$campos[30],$campos[31],
$campos[32],$campos[33],$campos[34],$campos[35],$campos[36],$campos[37],$campos[38],
$campos[39],$campos[40],$campos[41],$campos[42],$campos[43])
{
$sql="INSERT INTO ventas306(clave_area,area_vta,fecha_contable,sesion,fecha_apertura,hora_apertura,av_p,
transaccion,operacion,id_vta,tipo,origen,destino,fecha_salida,hra_salida,f_boleto,asiento,pasajero,
campo19,f_pago,ef,tb,pu,tr,do,gp,cv,importe,formato_salto,fecha_venta,hra_venta,corrida,empresa_corrida,
t_boleto,referencia,autorizacion,voucher,t_servicio,fecha_cierre,razon_social,rfc,documento,empresa,fin)
VALUES ('$campos[0]','$campos[1]','$campos[2]','$campos[3]','$campos[4]',
'$campos[5]','$campos[6]','$campos[7]','$campos[8]','$campos[9]',
'$campos[10]','$campos[11]','$campos[12]','$campos[13]','$campos[14]',
'$campos[15]','$campos[16]','$campos[17]','$campos[18]','$campos[19]','$campos[20]',
'$campos[21]','$campos[22]','$campos[23]','$campos[24]','$campos[25]','$campos[26]',
'$campos[27]','$campos[28]','$campos[29]','$campos[30]','$campos[31]','$campos[32]',
'$campos[33]','$campos[34]','$campos[35]','$campos[36]','$campos[37]','$campos[38]',
'$campos[39]','$campos[40]','$campos[41]','$campos[42]','$campos[43]')";
return ejecutarConsulta($sql);
}
}
?>