Toon posts:

[mysql] Load data infile .. wel in phpMyAdmin niet in script

Pagina: 1
Acties:

Verwijderd

Topicstarter
Eigenlijk zegt bovenstaande titel al genoeg.

Ik heb zelf een script geschreven om een geupload csv bestand met LOAD DATA INFILE te importeren in een tabel. De query wordt netjes opgesteld, maar de query kan niet worden uitgevoerd.
Ik krijg de foutmelding:
1148: The used command is not allowed with this MySQL version

Echter:
Met phpMyAdmin (en dezelfde gebruikersnaam, wachtwoord) lukt het wel om hetzelfde bestand te importeren.

Ik heb de syntaxen van beide queries vergeleken: exact hetzelfde!

Ook heb ik gekeken over het tijdelijke bestand dat aangemaakt wordt en gebruikt wordt voor de import beschikt over de juiste rechten. Ja dus: leesbaar en schrijfbaar.

Ook in de configuratie variabelen van MySQL vind ik: local infile ON ON

Iemand toch enige idee waarom ik de query NIET kan uitvoeren vanuit mijn script maar wel vanuit phpMyAdmin?!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Mischien dat phpMyAdmin de sql bestudeert en op basis van de mysql versie er achter komt dat het niet ondersteund wordt en dat ie daarom er zelf een actie op basis van de query uitvoert? Ik roep maar wat, maar anders zou ik het ook niet weten.

Noushka's Magnificent Dream | Unity


Verwijderd

Topicstarter
Dat denk ik niet, want phpMyAdmin toont in het statusvenster

1. welke query is uitgevoerd
2. wat de resultaten van de query zijn

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Dat kan ook geemuleerd zijn zeg maar. Maar het zal wel gewoon uitgevoerd zijn dan. Kun je er verder niets over vinden op google?

Noushka's Magnificent Dream | Unity


  • Tommetje
  • Registratie: Februari 2004
  • Laatst online: 19-11-2024
Heeft de gebruiker van MySQL die je in je script gebruikt wel de goede rechten?

Hoi!


Verwijderd

Topicstarter
Eh ja, want dat is dezelfde gebruiker als phpMyAdmin gebruikt.
Volgens de provider zou het toch aan m'n script moeten liggen ?!

Verwijderd

Topicstarter
Ok dan, ik ben er eindelijk uit:

phpMyAdmin geeft bepaalde flags mee aan de database connectie.
mysql_connect($server, $user, $pass, false, 128);

128 zorgt ervoor dat LOAD DATA LOCAL INFILE wordt toegestaan voor de connectie / client.

Zie http://www.php.net/mysql_connect voor meer flags en mogelijkheden.
Pagina: 1