SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > Off Topic Area

Off Topic Area Hierein gehört alles, was nichts mit PHP, MySQL, Apache oder ähnlichem zu tun hat

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 07.03.2008, 12:09:52
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
MySqlDump ziehen mit Where Bedingungen

Moin, moin,

gibt es ein Tool, ein PHP-Script, mit dem ein MySql Dump gezogen werden kann, indem auch Where Bedingungen berücksichtigt werden?
Mit PhPMyAdmin kann ich SELECT * FROM DB WHERE durchführen, wie auch mit vielen weiteren Tools. Diese Abfrage muss ich aber manuell durchführen und es wird kein Dump erzeugt.

Innerhalb der MySql-Installation findet sich ein Werkzeug, mysqldump, mit dem auf der Shell, und in Verbindung eines DB-Stopps, entsprechende DB-Auszüge gezogen werden könnten, doch auf der Shell und die DB wird gestoppt. Ach so ja, alternativ zu mysqldump wird noch ein Perl-Script angeboten, doch ich kann kein Perl laufen lassen.

Ich habe mysqldumper getestet, ein sehr gutes Werkzeug mit dem unter anderem auch zumindest schon einzelne Tabellen gewählt werden können, doch eben keine Where Bedingungen auf Datensätze.

Gibt es da ein brauchbares Script?

Grüße, Franzx
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #2  
Alt 10.03.2008, 12:06:05
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: MySqlDump ziehen mit Where Bedingungen

Wenn es jemanden interessiert, habe hier eine Lösung gefunden:

http://www.wer-weiss-was.de/theme163...le2952225.html

(Anmerkung: Darf eigentlich noch so ohne weiteres auf andere Websites verwiesen werden, ohne den Betreiber zu fragen?)

Grüße, Franzx
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #3  
Alt 10.03.2008, 12:24:55
Damir Damir ist offline
Administrator
 
Registriert seit: Jan 2002
Ort: Köln
Alter: 53
Beiträge: 1.276
AW: MySqlDump ziehen mit Where Bedingungen

Zitat:
Zitat von Franzx Beitrag anzeigen
(Anmerkung: Darf eigentlich noch so ohne weiteres auf andere Websites verwiesen werden, ohne den Betreiber zu fragen?)
Aber nur so funktioniert doch das Internet..... Man darf sich nur nicht den Inhalt der Zielseite zu eigen machen.....

Aber ich lasse mich sehr gerne belehren;-)

Damir
__________________
Qozido - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #4  
Alt 10.03.2008, 17:09:49
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: MySqlDump ziehen mit Where Bedingungen

Zitat:
Zitat von Damir Beitrag anzeigen
Aber nur so funktioniert doch das Internet..... Man darf sich nur nicht den Inhalt der Zielseite zu eigen machen.....
Damir
Ja, davon bin ich ja eigentlich auch immer ausgegangen, doch der ein oder andere Artikel im Internet, zu diesem Thema, lässt mich doch manchmal zweifeln! :-)
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #5  
Alt 10.03.2008, 17:23:30
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: MySqlDump ziehen mit Where Bedingungen

In Bezug auf die Erstellung dieses Dumps, mit den zu beachtenden Where Bedingungen, stellt sich noch eine Frage!
Erst die Erklärung: Habe mir dieses, im ersten Post verlinkte Script, für mich angepasst. Das mit den WHERE Bedingungen funktioniert einwandfrei und es werden nur die entsprechenden Datensätze ausgegeben. Allerdings werden, obwohl nur bestimmte Felder per SELECT gewählt sind, immer alle Felder eines Datensatzes ausgegeben.

Mir ist bewusst, dass die Tabellen sequentiell, also Datensatz für Datensatz ausgelesen werden, unter Berücksichtigung der WHERE Bedingungen.
Hier die Frage, die sich nicht auf das von mir angepasste Script bezieht, sondern als allgemeine Frage zu betrachten ist:

Warum werden mehr Felder ausgegeben als diese die mit SELECT gewählt sind?

Ist dies immer so, geht es nicht anders bei der Erstellung eines Dumps?

Habe da auch einige frei verfügbare Tools gefunden, mit denen auch nur, wenn überhaupt, die gesamten Tabellen in einer DB zu wählen waren, aber nie noch Felder in den Tabellen.

???
Grüße, Franzx
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #6  
Alt 11.03.2008, 12:24:57
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: MySqlDump ziehen mit Where Bedingungen

Eine mögliche Lösung, die meine Aufgabe löst:

Habe das Scritp von Rudy, welches im zweiten Post verlinkt ist, wie folgt angepasst:
PHP-Code:
$dbhost "localhost";
$dbuser "root";
$dbpwd "pass";
$dbname "datenbank";
$conn = @mysql_connect($dbhost$dbuser$dbpwd);  
if (!
$conn) {                                                        
die(
mysql_error());
}

mysql_select_db($dbname);
# die folgend zu erzeugende Datei muss Schreibrechte auf dem Server erhalten
$f fopen("./dump.sql""w");
# folgend das Wort "Tabellenname" austauschen gegen den wirklichen Tabellennamen
$table Tabellenname;
fwrite($f,"# Copyright - Wer auch immer und von welcher DB;\n");
# folgend der Tabellenkopf mit Feldbezeichnungen der Tabelle. 
fwrite($f,"CREATE TABLE `$table` (  `feld1` varchar(5) character set latin1 NOT NULL default '',  `feld2` mediumtext character set latin1,  `feld3` date default NULL,  `feld4` date default NULL,  `feld5` date default NULL,  PRIMARY KEY  (`feld1`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;\n");
$data mysql_query("SELECT Tabellenname.feld1,Tabellenname.feld2,Tabellenname.feld3,Tabellenname.feld4,Tabellenname.feld5 FROM `$table` WHERE Tabellenname.feld5 != 1 AND Tabellenname.feld3 IS NULL") or die(mysql_error());
$num mysql_num_fields($data);
while (
$row mysql_fetch_array($data)){
$line "INSERT INTO `$table` VALUES(";
for (
$i=1;$i<=$num;$i++) {
$line .= "'".mysql_real_escape_string($row[$i-1])."', ";
}
$line substr($line,0,-2);
fwrite($f$line.");\n");
}
fwrite($f," \n");
# Möchte man von mehr als einer Tabelle einen Dump erzeugen, mit WHERE-Bedingungen und Spaltenweise Auswahl, dann den folgenden Block kopieren bis --->
$table2 Tabellenname2;
fwrite($f,"CREATE TABLE `$table2` (  `feld1` varchar(5) character set latin1 default NULL,  `feld2` smallint(6) default NULL,  `vom` date default NULL,  `bis` date default NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;\n");
$data mysql_query("SELECT Tabellenname2.feld1,Tabellenname2.feld2,Tabellenname2.vom,Tabellenname2.bis FROM `$table2` ") or die(mysql_error());
$num mysql_num_fields($data);
while (
$row mysql_fetch_array($data)){
$line "INSERT INTO `$table2` VALUES(";
for (
$i=1;$i<=$num;$i++) {
$line .= "'".mysql_real_escape_string($row[$i-1])."', ";
}
$line substr($line,0,-2);
fwrite($f$line.");\n");
}
fwrite($f," \n");
# ---> bis hier und direkt dahinter wiede einfügen. Natürlich müssen entsprechend der Tabellenname, die Feldbezeichungen wieder angepasst werden

fclose($f);
echo (
"Dump wurde geschrieben!"); 
Franzx
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Collation nach latin1_german1_ci ändern meldet Fehler bei mysqldump panametrics MySQLi/PDO/(MySQL) 0 25.04.2007 15:00:11
query bringt mit WHERE xyz OR xyz zu viele ergebnisse panametrics MySQLi/PDO/(MySQL) 1 15.09.2006 20:48:56
WHERE mit zwei Bedingungen Heinrich MySQLi/PDO/(MySQL) 2 14.05.2006 18:19:11
WHERE MATCH ... AGAINST..., zusätzliche WHERE Anweisungen definieren?! 8805-evergreen. MySQLi/PDO/(MySQL) 6 10.03.2006 22:48:06
Das soll nach 1 h ausgeführt werden! Spike15 PHP Grundlagen 12 04.04.2005 17:29:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:56:46 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt