solved: Mysql+php+Datei
Moesli 22.03.2004 - 09:09 653 10
Moesli
goes Linux
|
Nach tutorials abzusuchen bin ich jetzt zum entschluss gekommen meine frage hier zu posten,.. Ich möchte gerne via PHP-Script eine Mysql tabelle leeren und sie anschließend mit daten aus einer Textdatei befüllen,.. in dem Textfile stehen MYSQL befehle die anschließend ausgeführt werden sollen,.. mometan mache ich es händisch via. PHP admin,.. naja vieleicht kennt wer von euch ne lösung,..
Bearbeitet von Moesli am 22.03.2004, 14:06
|
Ringding
Pilot
|
Und wo ist die Frage bzw. das Problem?
|
dio
Here to stay
|
naja vieleicht kennt wer von euch ne lösung,.. hi, das wird seine "frage" sein warum liest du nicht einfach die txt datei ein und führst nach und nach mit einer schönen schleife die befehle aus...? mfg
|
Moesli
goes Linux
|
hi,
das wird seine "frage" sein warum liest du nicht einfach die txt datei ein und führst nach und nach mit einer schönen schleife die befehle aus...?
mfg Meine Frage ist welche Befehle brauche ich dazu?
|
mat
AdministratorLegends never die
|
in dem Textfile stehen MYSQL befehle die anschließend ausgeführt werden sollen sind das exportierte daten aus phpmyadmin?
|
Moesli
goes Linux
|
sind das exportierte daten aus phpmyadmin? sind konvertierte Squid-Proxy logfiles die in MYSQL befehle umgewandelt worden sind,.. mit PHP admin Kompatibel,..
|
Rektal
Here to stay
|
Wenn manuell, dann Datei einlesen und jede Zeile, die ein SQL Statement ist, an den MySQL-Server schicken.
|
mat
AdministratorLegends never die
|
<?php
// *) Datei öffnen
$pFile = fopen("test.sql","r") or die("Error: Could not open file!");
$szContent = fread($pFile,filesize("test.sql"));
fclose($pFile);
// *) mySQL Konfiguration
$aDB['Server'] = "mysqlserver";
$aDB['Port'] = "";
$aDB['User'] = "user";
$aDB['Pass'] = "pass";
$aDB['DB'] = "dbname";
// *) DB Initialisierung
$hConnection = mysql_connect($aDB['Server'].($aDB != '' ? ':'.$aDB['Port'] : ''),$aDB['User'],$aDB['Pass']);
if (!$hConnection)
die(mysql_error());
mysql_select_db($aDB['DB'],$hConnection) or die(mysql_error());
// *) eingelesene Queries ausführen
echo "Queries werden ausgeführt:<br><br>";
flush;
$aQueries = explode("\n",$szContent);
$nQuery = 0;
$szOutput = "";
$szCurQuery = "";
foreach($aQueries as $nKey => $szQuery)
{
if (trim($szQuery) == "") // leere Zeile
continue;
if ($szQuery[0] == "#") // Kommentar
continue;
$szCurQuery .= $szQuery;
$szCQ = rtrim($szQuery);
if ($szCQ[strlen($szCQ)-1] != ";")
continue;
$szOutput .= "<br>Query ".($nQuery+1).": $szCurQuery";
if (!mysql_query($szCurQuery,$hConnection))
{
$szOutput .= "<br>\t Error: ".mysql_error();
break;
}
$szCurQuery = "";
$nQuery++;
}
die($szOutput."<br><br>.. $nQuery Queries erfolgreich ausgeführt!");
?>
|
Moesli
goes Linux
|
VIELEN DANK MAT !!!!
|
Rektal
Here to stay
|
flush;
Und das funktioniert? Sollte das nicht flush(); sein?
|
mat
AdministratorLegends never die
|
is glaub ich egal.. sollte man halt schauen obs eine warning notifcation gibt allerdings gibts mit flush() ja ganz andere browserspzifische schwierigkeiten
|