"; $errores++; continue; } if (!is_numeric($precio) || (float)$precio <= 0) { echo "Error en fila $fila: El precio '$precio' no es un número válido.
"; $errores++; continue; } if (!is_numeric($stock) || (int)$stock < 0) { echo "Error en fila $fila: El stock '$stock' debe ser un número entero mayor o igual a cero.
"; $errores++; continue; } $stock = (int)$stock; $stmt = $conexion->prepare(" INSERT INTO productos (id, nombre, precio, categoria, imagen, activo, stock) VALUES (?, ?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE nombre = VALUES(nombre), precio = VALUES(precio), categoria = VALUES(categoria), imagen = VALUES(imagen), activo = VALUES(activo), stock = VALUES(stock) "); $stmt->bind_param("isdssii", $id, $nombre, $precio, $categoria, $imagen, $activo, $stock); if ($stmt->execute()) { $importados++; } else { echo "Error de BD en fila $fila: " . $conexion->error . "
"; $errores++; } } fclose($archivo); echo "
"; echo "

Resumen del proceso:

"; echo "Productos procesados (Nuevos o Actualizados): $importados
"; if ($errores > 0) { echo "Filas con errores: $errores
"; } echo "
Ver catálogo en la web"; } else { echo "No se pudo encontrar el archivo $nombre_archivo"; } ?>