Veamos, estoy leyendo datos de un fichero CSV para meterlos con PHP en una BBDD MySQL. Este es el código:
$archivo=fopen("articulos1.csv", "r"); //abro el archivo
while(!feof($archivo)){
$linea=fgets($archivo); //Leo datos con CSV
$arrayLineas=explode(";", $linea); //Aquí tengo mi array con los datos del
if(!empty($arrayLineas[0])){ //Con esto quito cuando el ean esté vacío
$contador=0;
while($contador<count($arrayLineas)){
$sql="INSERT INTO articulos_csv (`ean`, `nombre`) VALUES"." (".$arrayLineas[0].", ".$arrayLineas[1].")";
$resultado=mysqli_query($conWebService, $sql);
$contador++;
}
Os dejo un ejemplo del tipo de estructuras que estoy recorriendo para insertar en la BBDD:
array(2) {
[0]=>
string(1) "9"
[1]=>
string(40) "PORT�TIL ASUS ROG ZEPHYRUS G14 GA401IU
"
}
Algunas líneas del CSV (abierto con el bloc de notas):
1;DECODIFICADOR ENGEL RS8100Y
3;RELOJ DEPORTIVO CON GPS GARMIN INSTINCT SOLAR AM
Algunas líneas de la BBDD (eso es lo máximo que he conseguido, ya que con el código actual no me inserta nada pero tampoco me da error):
ean nombre
1 1
3 3
ACTUALIZACIÓN 1:
He puesto todos los textos del CSV entre comillas, de la siguiente forma:
1;"DECODIFICADOR ENGEL RS8100Y"
3;"RELOJ DEPORTIVO CON GPS GARMIN INSTINCT SOLAR AM"
He probado con el siguiente código:
foreach ($arrayLineas as $key => $value) {
$sql="INSERT INTO articulos_csv (`ean`, `nombre`) VALUES"." (".$value.", ".$value.")";
$resultado=mysqli_query($conWebService, $sql);
Y he conseguido lo siguiente en mi tabla de MYSQL:
ean nombre
0 DECODIFICADOR ENGEL RS8100Y
3 3
5 5
Es decir, no lo comprendo. Me mete el primer nombre medio bien (nombre correcto pero ean no, que debería ser 1) pero el resto no, y no da ningún error. No sé en qué estoy fallando. En este caso he estado leyendo el txt. Cuando leo el csv con este mismo código, lo que me inserta en MySQL es:
ean nombre
1 1
3 3
No veo dónde está el fallo.
Muchas gracias, saludos.