DBs Expotieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anwender
aufruf
backup
befehl
connection
datei
daten
error
fehler
finger
insert
melde
nummer
show
statement
struktur
tabelle
table
tutorial
update
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
mh das w?rde mich auch interessieren...wenn man das dann per cronjob macht w?re man sehr sicher vor evt. serverausf?llen :)
-
Vorab m?chte ich anmerken, dass ihr das Ex- und Importieren von Backups nur entweder mit phpMyAdmin oder den MySQL-Tools (http://www.lima-city.de/tutorials?m=show&id=1378) machen solltet.
@topic:
Um das mit PHP selbst zu machen, musst du so ziemlich das selbe machen wie myPHPAdmin. Auf die richtige Datenbank verbinden, dann mit "show tables" alle Tabellen in der DB anzeigen lassen. F?r jede Tabelle dann "desribe Tabellenname" aufrufen, um die Struktur der Tabelle zu haben. Dann alle bereits eingetragenen Werte aus der Tabelle lesen.
Die Daten, die man mit "show tables" und "describe Tabellenname" bekommt, benutzt man um ein die CREATE TABLE-Statements aufzubauen. Die Daten, die man aus den Tabelle liest benutzt man, um INSERT INTO-Statements aufzubauen. Voila, fertig das SQL-Backup, das auch wieder eingespielt werden kann. -
Vorab m?chte ich anmerken, dass ihr das Ex- und Importieren von Backups nur entweder mit phpMyAdmin oder den MySQL-Tools (http://www.lima-city.de/tutorials?m=show&id=1378) machen solltet.
@topic:
Um das mit PHP selbst zu machen, musst du so ziemlich das selbe machen wie myPHPAdmin. Auf die richtige Datenbank verbinden, dann mit "show tables" alle Tabellen in der DB anzeigen lassen. F?r jede Tabelle dann "desribe Tabellenname" aufrufen, um die Struktur der Tabelle zu haben. Dann alle bereits eingetragenen Werte aus der Tabelle lesen.
Die Daten, die man mit "show tables" und "describe Tabellenname" bekommt, benutzt man um ein die CREATE TABLE-Statements aufzubauen. Die Daten, die man aus den Tabelle liest benutzt man, um INSERT INTO-Statements aufzubauen. Voila, fertig das SQL-Backup, das auch wieder eingespielt werden kann.
jaor, also danke, f?r das tut auch wenn ich das nciht suche, es ist schon eher das was du hier beschrieben hast!
und das kklingt cschwirig aber ich werde es mal probieren, l?ute die interresse haben mir dabei zu helfen k?nnen sich gerne hier oder bei mir melden da is es ja einfacher wenn man mehrere sind sowas zu amchen!
MfG
Kraeusi -
mh wenn du das schaffst will ich das auch ^^
funktioniert das auf lima?:
Backup Table funktioniert ?hnlich wie ?select into outfile?, ist aber vom Befehl her klarer strukturiert: Der Anwender gibt direkt im SQL-Statement an, was er sichern m?chte. Die Option ?backup table? erh?lt als Parameter eine oder mehrere Tabelle sowie den Namen einer Datei, in die die Tabellen gesichert werden sollen: ?backup table Tabelle1 [,Weitere] to 'Datei'?. Mit diesem Befehl lassen sich mehrere Tabellen gleichzeitig sichern, die mit einem Komma voneinander getrennt anzugeben sind.
In aktuellen MySQL-Dokumentationen ist zwar zu lesen, dass Backup Table veraltet sei und die Entwickler gerade an einer neuen Variante arbeiten. Diesen Hinweis kann der Anwender jedoch getrost ignorieren, denn die Option - ob veraltet oder nicht - funktioniert ganz hervorragend. Der gro?e Vorteil im Vergleich zu ?select into outfile? ist, dass sie mehrere Tabellen gleichzeitig sichert. Sie verlangt jedoch wie die Select-Funktion einen Shellzugriff auf den MySQL-Server.
Edit1: Ok: Access denied. You need the FILE privilege for this operation
Edit2: http://www.linux-magazin.de/Artikel/ausgabe/2004/05/mysql/mysql.html -
H?ttest nur mal vorher fragen m?ssen, dann h?tte ich dir das gleich gesagt. Man hat hier nur tierische eingeschr?nkte Rechte auf seinen DBs. Na ja, so hast du auch mal deine Finger bisschen beim Schreiben bewegt *gg*
-
-.- Joar aber ich hab auf deren Server die php version gefunden :) ich teste die gleich mal ^^ ich melde mich dann wieder hier ^^ Das ist dann allerdings eine DB -> DB Version :S
-
-.- Joar aber ich hab auf deren Server die php version gefunden :) ich teste die gleich mal ^^ ich melde mich dann wieder hier ^^ Das ist dann allerdings eine DB -> DB Version :S
ok bin schon gespannt, bitte auch dann ebi mir melden!
0-checka schrieb:
H?ttest nur mal vorher fragen m?ssen, dann h?tte ich dir das gleich gesagt. Man hat hier nur tierische eingeschr?nkte Rechte auf seinen DBs. Na ja, so hast du auch mal deine Finger bisschen beim Schreiben bewegt *gg*
das war net zu mir oder?
EDIT 0-checka
Nee, wars nicht
-
mh ich hab ?berall meine daten eingegeben und den teil mit dem "teil" backup weggelassen und daf?r nur den fullbackupteil beachtet. Nun habe ich folgenden fehler -.-
UPDATE FULL begin
Updating: 4
query error: insert into game_benutzer(nummer, user_anmeldedatum) values( 1, 2005-05-23 00:00:00)
code teil beim query
$num = mysql_num_rows( $r);
print "Updating: $num <br>";
for( $i=0; $i<$num; $i++)
{
$row = mysql_fetch_row( $r);
$qs = "insert into game_benutzer(nummer, user_anmeldedatum) values( $row[0], $row[1])";
$ins = mysql_db_query( "|||Datenbankname|||", $qs, $cL);
if( ! $ins)
{
print "query error: $qs <br>";
return;
}
}
print "DONE ! <br>"; -
query error: insert into game_benutzer(nummer, user_anmeldedatum) values( 1, 2005-05-23 00:00:00)
die werte sind falsch, also das datum und die uhrzeit, cih denke da liegt der fehler, deshalbt wird es geblockt!
MfG
Kraeusi -
was soll das hei?en die werte sind falsch? die beiden tabellen isnd ja schlie?lich exakt gleich aufgebaut Oo
-
was soll das hei?en die werte sind falsch? die beiden tabellen isnd ja schlie?lich exakt gleich aufgebaut Oo
schaue doch aml die werte sind falsch cih beziehe das darauf!
firemanic schrieb:
mh ich hab ?berall meine daten eingegeben und den teil mit dem 'teil' backup weggelassen und daf?r nur den fullbackupteil beachtet. Nun habe ich folgenden fehler -.-
UPDATE FULL begin
Updating: 4
query error: insert into game_benutzer(nummer, user_anmeldedatum) values( 1, 2005-05-23 00:00:00)
code teil beim query
$num = mysql_num_rows( $r);
print 'Updating: $num <br>';
for( $i=0; $i<$num; $i++)
{
$row = mysql_fetch_row( $r);
$qs = 'insert into game_benutzer(nummer, user_anmeldedatum) values( $row[0], $row[1])';
$ins = mysql_db_query( '|||Datenbankname|||', $qs, $cL);
if( ! $ins)
{
print 'query error: $qs <br>';
return;
}
}
print 'DONE ! <br>';
bei $row[0], $row[1] muss da ein ?bergabe fehler sien, doer ein falscher ausgabe fehler!
MfG
KRaeusi
ps.: ich habe dir dohc per pn ein komplettes skript geshcickt was is damit?= -
Das Datum muss als String ?bergeben werden, also in Hochkommata oder Anf?hrungsstriche einschliessen.
-
jaja genau daran arbeite ich immoment ^^ ich habe den erste teil weggelassen, weil im prinzip 2 skripte sind..eins mit dem man teil backups machen kann und eins f?r ganze backkups. Den ersten Teil brauch ich nich ^^ So und beim 2. steckt dieser Teil dazwischen -.- mh aber nummer 1 stimmt und das datum steht auch in meiner lima-city db :S
Edit: oh da war einer schneller ^^
Edit2: danke ^^ es geht ^^ soll ich code hier reinposten? [als frage an die mods gerichtet ob ich das darf Oo] -
sch?n ^^ dann mal los ^^ also ich w?rde die datei einfach backup.php nennen ^^
alles mit der 1 sind die Daten von wo aus das Backup gemacht wird
alles mit der 2 sind die Daten wohin das Backup gamacht werden soll
mein Tipp ist das bei cronjobs.de einzutragen ^^ dann kriegt ihr immer eure Backups....und ihr vergesst es nich! Die Tabelle muss auf beiden Datenbanken existieren und gleich sein!
code:
---------------------------------------------------------------
<?
function UpdateFull()
{
print "UPDATE FULL begin<br>";
// build a connection to the remote mysql
$cR = mysql_connect( "HOST1", "NAME1", "PW2");
if( ! $cR)
{
print 'No remote connection';
return;
}
// build a local connection
$cL = mysql_connect( "HOST2", "NAME2", "PW2");
if( ! $cL)
{
print 'no local connection.';
return;
}
// delete the local table
$strDel = "delete from TABELLE";
$r = mysql_db_query( "DB2", $strDel, $cL);
if( ! $r)
{
print "Fehler bei delete: qs: $strDel <br>";
return;
}
// get everything from remote
$qs = "select * from TABELLE";
$r = mysql_db_query( "DB1", $qs, $cR);
if( ! $r)
{
print "query error: $qs <br>";
return;
}
$num = mysql_num_rows( $r);
print "Updating: $num <br>";
for( $i=0; $i<$num; $i++)
{
$row = mysql_fetch_row( $r);
$qs = "insert into game_benutzer(FELD1, FELD2 ) values( $row[0],'$row[1])";
$ins = mysql_db_query( "DB2", $qs, $cL);
if( ! $ins)
{
print "query error: $qs <br>";
return;
}
}
print "DONE ! <br>";
}
?>
<html><head></head><body>
<?php UpdateFull(); ?>
</body></html>
-------------------------------------------- -
danke danke, jetzt musste mri aber auch support liefern!
UPDATE FULL begin
Fehler bei delete: qs: delete from TABELLE
was bedeuted das? -
les nochmal ich habs ver?ndert zur ?bersicht ^^
-
oha da muss ich aj viel anpassne, und auch meine sachen nunja das mach cih morgen, anch der arbeit, jetzt gehe ich pennen sage dir morgen obs geklappt hat!
thx trozdem!
MfG
Kraeusi -
Das Datum muss als String ?bergeben werden, also in Hochkommata oder Anf?hrungsstriche einschliessen.
unter wlechen umst?nden muss denn da ein ' hin und unter welchen nicht?
EDIT: So ich habe das mal als Tutorial eingetragen, dann wirds jeder finden, hoffe ich mal ^^ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage