Insertando contenido de un txt en la bd mysql...
Hola colega mira después de dar miles de tropezones sin resolver acudo a ti para ver si me puedes ayudar, resulta que estoy haciendo un sistemita que comienza con importar datos de un txt para una bd mysql pero resulta que no me esta insertando nada en la bd, te voy a explicar por partes, primeramente te mando la función que debe hacer esa acción :
function exportFileToDatbase($filename,$tablename)//,$fieldno)//$mode,
{
/*//delfirstline("gen.txt", 1);
$arrayOflines=file($filename);
$linesIWant=array_slice($arrayOflines,1);
$fileContents=implode("\n",$linesIWant);
$fd=fopen("newfile.txt",'w+');
fwrite($fd,$fileContents);
//fclose($fd);
$myFile = "gen.txt";
unlink($myFile);
//$fd=fopen($fp,"$mode"); --> linea original
while(!feof($fd)) {
$line=fgets($fd,5000);
//$f=explode(",",$line);
$f=preg_split("/,/",$line);
//for($i=0;$i<$fieldno;$i++) {
for($i=0;$i<count($f);$i++) {
$a[]=trim($f[$i]);
}
$value=implode(",",$a);
//$value=implode("",$a);
unset($a);
$sql="insert into $tablename values($value)";
echo $sql;
$this->query($sql);
}*/
// comienza aqui, lo de arriba no me funciona asi que esta comentado
echo '<br />';
//delfirstline("gen.txt", 1);
$arrayOflines = file($filename);
$linesIWant = array_slice($arrayOflines, 1);
$fileContents = implode("\n", $linesIWant);
$fd = fopen("newfile.txt", 'w+');
fwrite($fd, $fileContents);
//fclose($fd);
$myFile = "gen2.txt";
//unlink($myFile);
//$fd=fopen($fp,"$mode"); --> linea original
$fd = fopen("gen2.txt", "r");
while(!feof($fd))
{
$line = fgets($fd, 5000);
//$f=explode(",",$line);
$f = preg_split("/,/", $line);
//for($i=0;$i<$fieldno;$i++) {
for($i = 0; $i < count($f); $i ++)
{
if(trim($f[$i])!='')
$a[] = '\''.trim($f[$i]).'\'';
}
$value = implode(",",$a);
//$value=implode("",$a);
unset($a);
$sql = "insert into $tablename values($value)";
echo $sql.'<br />';
//$this->query($sql);
}
}
mi fichero text es más o menos así :
Time,machine1 - average, signal, analog input [W / m²], ,machine2 - 220kV energy [MWh], ,machine3 - [m³/h], ,machine4 - level 1oo4 water process [mm], ,
13-dic-2009 0:00:00, ,0.00, ,23089.47, 1624704.00, , 1813, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
alli estan las dos primeras lineas, como ves lo primero no me hace falta asi que lo elimino y creo un fichero nuevo sin esa linea, o sea solo con los datos que voy a entrar en la bd
13-dic-2009 0:00:00, ,0.00, ,23089.47, 1624704.00, , 1813, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
las columnas vienen siendo estas :
Tiempo machine1 - average signal
13-dic-2009 0:00:00 0.00 23089.47
lo coges ???
bueno, asi como esta el codigo me muestra lo siguiente en el browser :
C:\wamp\tmp\php56.tmp
insert into tblgeneracion values('13-dic-2009 0:00:00','0.00','23089.47','1624704.00','1813')
insert into tblgeneracion values('13-dic-2009 0:01:00','0.00','23089.47','1624708.00','1815')
Notice: Undefined variable: a in C:\wamp\www\file\fileClass.php on line 128
Warning: implode() [function.implode]: Invalid arguments passed in C:\wamp\www\file\fileClass.php on line 128
insert into tblgeneracion values()
The file was added sucessfully!
la linea 128 es esta :
$value =...
function exportFileToDatbase($filename,$tablename)//,$fieldno)//$mode,
{
/*//delfirstline("gen.txt", 1);
$arrayOflines=file($filename);
$linesIWant=array_slice($arrayOflines,1);
$fileContents=implode("\n",$linesIWant);
$fd=fopen("newfile.txt",'w+');
fwrite($fd,$fileContents);
//fclose($fd);
$myFile = "gen.txt";
unlink($myFile);
//$fd=fopen($fp,"$mode"); --> linea original
while(!feof($fd)) {
$line=fgets($fd,5000);
//$f=explode(",",$line);
$f=preg_split("/,/",$line);
//for($i=0;$i<$fieldno;$i++) {
for($i=0;$i<count($f);$i++) {
$a[]=trim($f[$i]);
}
$value=implode(",",$a);
//$value=implode("",$a);
unset($a);
$sql="insert into $tablename values($value)";
echo $sql;
$this->query($sql);
}*/
// comienza aqui, lo de arriba no me funciona asi que esta comentado
echo '<br />';
//delfirstline("gen.txt", 1);
$arrayOflines = file($filename);
$linesIWant = array_slice($arrayOflines, 1);
$fileContents = implode("\n", $linesIWant);
$fd = fopen("newfile.txt", 'w+');
fwrite($fd, $fileContents);
//fclose($fd);
$myFile = "gen2.txt";
//unlink($myFile);
//$fd=fopen($fp,"$mode"); --> linea original
$fd = fopen("gen2.txt", "r");
while(!feof($fd))
{
$line = fgets($fd, 5000);
//$f=explode(",",$line);
$f = preg_split("/,/", $line);
//for($i=0;$i<$fieldno;$i++) {
for($i = 0; $i < count($f); $i ++)
{
if(trim($f[$i])!='')
$a[] = '\''.trim($f[$i]).'\'';
}
$value = implode(",",$a);
//$value=implode("",$a);
unset($a);
$sql = "insert into $tablename values($value)";
echo $sql.'<br />';
//$this->query($sql);
}
}
mi fichero text es más o menos así :
Time,machine1 - average, signal, analog input [W / m²], ,machine2 - 220kV energy [MWh], ,machine3 - [m³/h], ,machine4 - level 1oo4 water process [mm], ,
13-dic-2009 0:00:00, ,0.00, ,23089.47, 1624704.00, , 1813, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
alli estan las dos primeras lineas, como ves lo primero no me hace falta asi que lo elimino y creo un fichero nuevo sin esa linea, o sea solo con los datos que voy a entrar en la bd
13-dic-2009 0:00:00, ,0.00, ,23089.47, 1624704.00, , 1813, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
las columnas vienen siendo estas :
Tiempo machine1 - average signal
13-dic-2009 0:00:00 0.00 23089.47
lo coges ???
bueno, asi como esta el codigo me muestra lo siguiente en el browser :
C:\wamp\tmp\php56.tmp
insert into tblgeneracion values('13-dic-2009 0:00:00','0.00','23089.47','1624704.00','1813')
insert into tblgeneracion values('13-dic-2009 0:01:00','0.00','23089.47','1624708.00','1815')
Notice: Undefined variable: a in C:\wamp\www\file\fileClass.php on line 128
Warning: implode() [function.implode]: Invalid arguments passed in C:\wamp\www\file\fileClass.php on line 128
insert into tblgeneracion values()
The file was added sucessfully!
la linea 128 es esta :
$value =...
1 Respuesta
Respuesta de Jorge Vila
1