"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

solved: Mysql+php+Datei

Moesli 22.03.2004 - 09:09 653 10
Posts

Moesli

goes Linux
Avatar
Registered: Sep 2002
Location: Salzburg
Posts: 1328
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
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Und wo ist die Frage bzw. das Problem?

dio

Here to stay
Registered: Nov 2002
Location: Graz
Posts: 4873
Zitat von Moesli
naja vieleicht kennt wer von euch ne lösung,..
hi,

das wird seine "frage" sein :p :D
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
Avatar
Registered: Sep 2002
Location: Salzburg
Posts: 1328
Zitat von diokletian
hi,

das wird seine "frage" sein :p :D
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

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
Zitat
in dem Textfile stehen MYSQL befehle die anschließend ausgeführt werden sollen
sind das exportierte daten aus phpmyadmin?

Moesli

goes Linux
Avatar
Registered: Sep 2002
Location: Salzburg
Posts: 1328
Zitat von mat
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
Registered: Dec 2002
Location: Inside
Posts: 4452
Wenn manuell, dann Datei einlesen und jede Zeile, die ein SQL Statement ist, an den MySQL-Server schicken.

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
Code: PHP
<?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
Avatar
Registered: Sep 2002
Location: Salzburg
Posts: 1328
VIELEN DANK MAT !!!!:eek: :D

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Zitat von mat
Code: PHP
flush;

Und das funktioniert? Sollte das nicht flush(); sein?

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
is glaub ich egal.. sollte man halt schauen obs eine warning notifcation gibt :)

allerdings gibts mit flush() ja ganz andere browserspzifische schwierigkeiten :p
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz