solved: Mysql+php+Datei

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/solved_mysqlphpdatei_110317/page_1 - zur Vollversion wechseln!


Moesli schrieb am 22.03.2004 um 09:09

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,..


Ringding schrieb am 22.03.2004 um 10:18

Und wo ist die Frage bzw. das Problem?


dio schrieb am 22.03.2004 um 10:30

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 schrieb am 22.03.2004 um 11:01

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 schrieb am 22.03.2004 um 11:05

Zitat
in dem Textfile stehen MYSQL befehle die anschließend ausgeführt werden sollen
sind das exportierte daten aus phpmyadmin?


Moesli schrieb am 22.03.2004 um 11:23

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 schrieb am 22.03.2004 um 11:48

Wenn manuell, dann Datei einlesen und jede Zeile, die ein SQL Statement ist, an den MySQL-Server schicken.


mat schrieb am 22.03.2004 um 12:29

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 schrieb am 22.03.2004 um 12:57

VIELEN DANK MAT !!!!:eek: :D


Rektal schrieb am 22.03.2004 um 14:16

Zitat von mat
Code: PHP
flush;

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


mat schrieb am 22.03.2004 um 14:52

is glaub ich egal.. sollte man halt schauen obs eine warning notifcation gibt :)

allerdings gibts mit flush() ja ganz andere browserspzifische schwierigkeiten :p




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025