[php&mysql] .sql file ophalen en uitvoeren gaatnie

Pagina: 1
Acties:

  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

Topicstarter
nu wordt ik echt gek! ok, hier is mijn scriptje:
PHP:
1
<?mysql_connect("localhost", "root", "pass");$file = fopen ("producten.sql", "r");while (!feof ($file)) {    $data .= fgets($file, 4096);}fclose ($file);$data = explode(";", $data);$aantal = count($data);for ($i = 1; $i <= $aantal; $i++) {   $data[$i] .= ";";   $data[$i] = str_replace("\\r\\n", "\r\n", $data[$i]);   $result = mysql_db_query("tabel", $data[$i]);   if (!mysql_error()) {  } else { echo "<b><font size=\"-2\">$data[$i]</font></b> ".mysql_error()."<br>"; }}?>

Ik haal dus een .sql file op (gemaakt door phpmyadmin) en stuur die vervolgens naar de db, line voor line. Maar nu krijg ik probs met sommige query's waar copyright tekens en puntcomma's in voorkomen. Hoe kan ik zo'n .sql file nu helemaal goed sturen naar de db?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Laat phpmyadmin alles escapen wat ie maar kan? :)

moet namelijk gewoon werken, ik raad je echter aan het via de mysql-commandline interface te importeren ipv dmv jouw oplossing.

En sommige regels kunnen langer zijn dan 4096 karakters he? :)

Verwijderd

edit: mijn domme rep weggehaalt :P

  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

Topicstarter
Op zondag 09 juni 2002 13:09 schreef ACM het volgende:
Laat phpmyadmin alles escapen wat ie maar kan? :)

moet namelijk gewoon werken, ik raad je echter aan het via de mysql-commandline interface te importeren ipv dmv jouw oplossing.

En sommige regels kunnen langer zijn dan 4096 karakters he? :)
ah, goede tip van de escapen, maar dat commandline gaat niet lukken. Ik wil het nl. gebruiken voor het synchroniseren van een lokale en een externe database. Enig id hoe ik het dan zou moeten aanpakken. (synchen gebeurt ca. 1x per dag).

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Waarom lukt de commandline dan niet? :)

Die file staat er lokaal al.
De commandline-mysql client kan je ook dmv php aanroepen ala:
PHP:
1
<?$string = escape_shell_cmd("mysql -u $username -p$passwordje < inputfile.sql");system($string);?>

Oid :)