Salve a tutti.
Ho un file .txt molto lungo con dati messi in questo modo (sono le liste elettorali):
Vorrei trasferirli in un database Mysql.0001;Pinco;Pallino;M;Roma;01/01/1970;via Disney;
0002;Topolino; Topo;M;Milano;02/02/1972; via Gargaroz;
ecc ecc..
Ho creato il database:
Ho creato un file per l'accesso al database (database.php):CREATE TABLE `elezioni2009` (
`Id` int(5) NOT NULL auto_increment,
`Sezione` int(5) NOT NULL,
`Num` int(7) NOT NULL,
`Sesso` char(1) NOT NULL,
`Cognome` varchar(20) NOT NULL,
`Nome` varchar(20) NOT NULL,
`In` varchar(20) NOT NULL,
`Nato` varchar(20) NOT NULL,
`Il` varchar(10) NOT NULL,
`Cap` varchar(10) NOT NULL,
`Residente` varchar(25) NOT NULL,
`Via` varchar(40) NOT NULL,
`Vota` varchar(20) default NULL,
PRIMARY KEY (`Id`)
) ;
Codice PHP:
<?php
$host = '127.0.0.1';
$userdb = 'root';
$passdb = '';
$nomedb = 'nome_db';
?>
E poi il file che dovrebbe caricare i dati nel db:
Codice PHP:
<?php
include ('database.php');
mysql_connect($host,$userdb,$passdb) or die ("Non riesco a connettermi al database");
mysql_select_db($nomedb) or die ("Non posso aprire il database");
if(!$lista = fopen("file.txt","r"))
{
echo "Errore apertura file";
exit;
}
while (!feof($lista)) {
$buffer = fgets($lista);
list($sezione, $num, $sesso, $cognome, $nome, $coniugata, $nato, $il, $cap, $residente, $via, $item1, $item2, $item3) = explode(";", $buffer);
$result = mysql_query("INSERT INTO elezioni2009 VALUES('','$sezione', '$num', '$sesso', '$cognome','$nome','$coniugata','$nato','$il','$cap','$residente','$via','');") or die("Could not perform select query - " . mysql_error());
}
fclose($lista);
mysql_close();
?>
Quando provo ad eseguire il file attraverso il Browser, pare funzioni tutto. Invece carica solo i primi 6 elementi.
Se provo a sostituire la parte della query al db, con un echo dei dati, riesco ad avere tutti i dati. Quindi il problema sembra non essere nello scorrimento del file, ma nell'inserimento dei dati nel Db.
Dove sbaglio?