txt bestand importeren in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco Apeldoorn

Marco Apeldoorn

08/05/2013 07:08:29
Quote Anchor link
Hoi,

Ik probeer met de volgende phpcode een (kommagescheiden) tekstbestand te importeren

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

$con
=mysqli_connect($dbhost,$dbgebruiker,$dbww,$dbdb);

if (mysqli_connect_errno($con))
  {

  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }


$bestand=$_FILES['localfile']['tmp_name'];
$query="LOAD DATA LOCAL INFILE '$bestand' INTO TABLE `Boekingen` FIELDS TERMINATED BY  ',' ENCLOSED BY  '&#8221;' ESCAPED BY  '\\' LINES TERMINATED BY  '\r\n' IGNORE 1 LINES";

echo "Moment aub, bestand ".$bestand." word geimporteerd.<br><br>";

if (!mysqli_query($con,$query))
  {

  die('Error' . mysqli_error($con));
  }

?>


Nu krijg ik de error

ErrorYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' IGNORE 1 LINES' at line 2

Maar doe ik dit rechtstreeks op de sql server dan geeft het geen probleem.

Groetjes,

Marco
 
PHP hulp

PHP hulp

08/05/2024 07:22:42
 
- Pepijn  -

- Pepijn -

08/05/2013 07:49:19
Quote Anchor link
Het lijkt dr'op dat je een oude versie van mysql(i) gebruikt.
Of andersom
 
Milo S

Milo S

08/05/2013 08:15:19
Quote Anchor link
Het zou makkelijk zijn als je een voorbeeld geeft van het tekstbestand en de database tabel. Dan kunnen we zelf ook het een en ander proberen. Tot nu toe zie ik geen fouten die het probleem veroorzaken. Wat pepijn beweert lijkt mij sterk. Vandaar dat ik het even wil proberen.
 
Marco Apeldoorn

Marco Apeldoorn

08/05/2013 17:38:43
Quote Anchor link
Pepijn.

De versie van de SQL server is MySQL 5.5.28.



Toevoeging op 08/05/2013 17:41:36:

Milo S,

Een voorbeeld van het tekst bestand dat ik wil importeren:

"Datum","Naam / Omschrijving","Rekening","Tegenrekening","Code","Af Bij","Bedrag (EUR)","MutatieSoort","Mededelingen"
"20130424","Mw Y Voorbeeld","1234567","1234567","GT","Bij","40,00","Internetbankieren","Voorbeeld mededeling"
"20130424","E Voorbeeld","1234567","1234567","GT","Bij","27,50","Internetbankieren","Voorbeeld mededeling"
"20130424","T.L. Voorbeeld","1234567","12123456789","OV","Bij","5,00","Overschrijving","Voorbeeld mededeling"

Alvast bedankt voor het meedenken.

Groetjes,

Marco
 
Milo S

Milo S

08/05/2013 18:08:23
Quote Anchor link
Hallo Marco,

Ik heb het een en ander geprobeerd en bij mij gaf het volgende het gewenste resultaat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sql
= "LOAD DATA LOCAL INFILE '".$bestand."' INTO TABLE boekingen FIELDS TERMINATED BY  ',' ENCLOSED BY  '\"' LINES TERMINATED BY  '\r\n' IGNORE 1 LINES";


# Query uitvoeren
if( !$res = mysqli_query( $conn, $sql ) )
{

    echo 'An error occurred while executing the query.';
    echo mysqli_error( $conn );
}

else
{
    echo 'Gelukt!';
}

?>
 
Marco Apeldoorn

Marco Apeldoorn

08/05/2013 22:54:41
Quote Anchor link
Milo,

Thanks, pakte niet direct, maar naar even verder kijken werkte het.

$conn was eerder in het script $con.
En boekingen moest zijn Boekingen.

Maar dit is perfect.
Ook duidelijk opgezet waardoor het ook voor minder ervaren programmeur begrijpelijk is,

Groetjes,

Marcp
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.