Devo svuotare e riempire da zero due tabell del database partendo da due file txt
Le tabelle sono:
- catalog (che si aggiorna a partire dal file catalog.txt)
- clientes (che si aggiorna a partire dal file claves_clientes.txt)

Il codice che ho creato (a base di dritte e aiuti) funziona perfettamente online, ma mi da dei problemi con xampp o wamp e ho bisogno che funzioni su un server LAMP che è quello che utilizza il mio cliente.

Con xampp o wamp la tabella catalog non si aggiorna e restituisce il messaggio "Error:1"

Vi lascio e allego il codice:

Codice PHP:
<?php
/*
comando SQL de instalación:

CREATE TABLE IF NOT EXISTS `catalog` (
  `codigo` int(6) unsigned zerofill NOT NULL,
  `descripcion` varchar(45) NOT NULL,
  `precio` float unsigned NOT NULL,
  `iva` int(10) unsigned NOT NULL,
  `pvf` float unsigned NOT NULL,
  `familia` int(4) unsigned zerofill NOT NULL,
  PRIMARY KEY (`codigo`),
  KEY `descripcion` (`descripcion`,`familia`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `art_desc` (
  `codigo` int(6) unsigned zerofill NOT NULL,
  `descripcion` varchar(45) NOT NULL,
  `precio` float NOT NULL,
  `iva` int(10) unsigned NOT NULL,
  PRIMARY KEY (`codigo`),
  KEY `producto` (`descripcion`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `clientes` (
  `codigo_cliente` int(4) unsigned zerofill NOT NULL,
  `nombre` varchar(80) NOT NULL,
  `userid` varchar(80) NOT NULL,
  `password` varchar(80) NOT NULL,
  PRIMARY KEY (`codigo_cliente`),
  KEY `userid` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

*/
    
include('header.php');

    
/*    //TODO: Inicia sesion
    if (!isset($_SESSION['autenticado'])) {
        //header('Location: index.php');
        //exit();
    }
    else*/
{
        if (
count($_FILES) == 0) {    //muestra plantilla subir archivo
?>
    <form method="post" action="actualizar.php" enctype="multipart/form-data">
        <label><span>Archivo (catalog.txt)</span><input name="file" type="file" required="required" accept="text/plain"></label>
        <input name="opt" type="hidden" value="catalog" />
        <input type="submit" value="Subir">
    </form>
    <form method="post" action="actualizar.php" enctype="multipart/form-data">
        <label><span>Archivo (claves_clientes.txt)</span><input name="file" type="file" required="required" accept="text/plain"></label>
        <input name="opt" type="hidden" value="clientes" />
        <input type="submit" value="Subir">
    </form>
<?php        }
    else{        
        if (
$_FILES["file"]["error"] > 0)
            echo 
"Error: " $_FILES["file"]["error"] . "
"
;
        else        
        {
            
$lines file($_FILES["file"]["tmp_name"]);    //array con 1 producto por linea
            
include('config.php');    //acceso a la base de datos
            
$mysqli = new mysqli($db_host,$db_user,$db_pass,$db_name);
            if (
$mysqli->connect_errno) {
                echo(
"Error conectando con la base de datos: {$mysqli->connect_error}");
                exit;
            }
            
$mysqli->set_charset("utf8");
            
$mysqli->query("SET AUTOCOMMIT=0;");
            
$mysqli->query("START TRANSACTION;");
            if (
$_POST['opt'] == 'catalog') {
                
$mysqli->query("TRUNCATE TABLE catalog");
                foreach (
$lines as $line) {
                    
$codigo intval(substr($line06));
                    
$descripcion $mysqli->real_escape_string(rtrim(substr($line645)));
                    
$precio floatval(substr($line516));
                    
$iva intval(substr($line592));
                    
$pvf floatval(substr($line666));
                    
$familia intval(substr($line724));
                    
$mysqli->query("INSERT INTO catalog (codigo, descripcion,precio,iva,pvf,familia) VALUES ($codigo, '$descripcion',$precio,$iva,$pvf,$familia);");
                }
            }
            else {    
//claves_clientes.txt
            
$mysqli->query("TRUNCATE TABLE clientes");
                foreach (
$lines as $line) {
                    
$datos preg_split("#\?#"$line);
                    
$codigo intval($datos[0]);
                    
$nombre $mysqli->real_escape_string(trim($datos[1]));
                    
$userid $mysqli->real_escape_string(trim($datos[2]));
                    
$password $mysqli->real_escape_string(trim($datos[3]));
                    
$mysqli->query("INSERT INTO clientes (codigo_cliente, nombre,userid,password) VALUES ($codigo, '$nombre','$userid','$password');");
                }
            }
            if (
$mysqli->query("COMMIT;") === TRUE)
            {
            
//TODO: Muestra mensaje actualización realizado con exito?>
            

Base de Datos actualizada</p>
        <?php  }
        else
        {    
            
//TODO: Muestra mensaje fallo en la actualización
            
printf("Error: %s\n"$mysqli->error);
        }
        }
    }
    }
?>