tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
232
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Splater
    Splater Splater ist offline Mitglied Brokat
    Registriert seit
    Dec 2008
    Ort
    Machern, Germany
    Beiträge
    306
    Hallo liebe Community,

    ich habe momentan 3 .sql Datein vorliegen mit einer Größe > 8Gb. Da das öffnen dieser Dateien ewig dauert. Hab ich nach einer möglichkeit gesucht, gewünschte Inhalte einfach via fwrite einzubinden.

    Problem:
    In der .sql sind Backups von mehreren Datenbanken enthalten. Am Anfang und am Ende soll nun das FOREIGN_KEY_CHECKS auf 0 gesetzt werden.

    Klingt einfach. Ich habe zunächst die .sql Datei mit fopen("datei.sql","c+"); geöffnet und den Datenzeiger an Anfang gesetzt. Nun dachte ich mir ich schreibe kompletten Inhalt einfach in eine Variable ( $inhalt ).

    Der neue Inhalt also: SET FOREIGN_KEY_CHECKS=0; steckt in der Variable $key.

    Nun habe ich beide zusammengeführt

    $neuerinhalt = $key.$inhalt;


    Das Problem hierbei ist aber, dass zwar die Variable $key in die Datei geschrieben wird.
    Jedoch wird der Vorhandene Code in der .sql Datei einfach überschrieben.

    Gibt es hierfür eine Lösung?

    Viele Grüße
     
    Ohooo, was ist das? Ein Türknopf? Ausgezeichnet!

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.506
    Hi

    mal langsam:
    Du willst 8GB Sql per PHP in einen String laden und noch was anhängen,
    um es dann DB-mäßig ausführen zu lassen?
    Und das soll mit fwrite passieren?

    Das ist bestenfalls verrückt.

    a) fwrite schreibt nichts aus einer Datei in einen String,
    sondern vom String in die Datei.
    Du suchst fread.

    b) 8GB in einen String...viel Spaß.

    c) MySQL über PHP ist langsamer als MySQL allein.

    d) Vor allem bei solchen Datenmengen lohnt sich
    daher ein Import über die MySQL-Programme.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    Avatar von Splater
    Splater Splater ist offline Mitglied Brokat
    Registriert seit
    Dec 2008
    Ort
    Machern, Germany
    Beiträge
    306
    Hallo,
    ich glaube das kam falsch rüber.

    Ich habe mehrere .sql Datein die > 8Gb groß sind.

    In denen soll nun noch die Fremdschlüssel überprüfung auf 0 gesetzt werden.
    Nicht mehr und nicht weniger.

    Hier mal mein Ergebniss:
    PHP-Code:
    $t "SET FOREIGN_KEY_CHECKS=0;\n";
    $t.= "SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';\n";
    $t.= "SET time_zone = '+00:00';\n";


    $array file("daffta.sql");
    array_unshift($array$t);
    $string implode(""$array);
    file_put_contents("daffta.sql"$string);
    $inhalt file_get_contents("daffta.sql");
    file_put_contents("daffta.sql"$inhalt .= "SET FOREIGN_KEY_CHECKS=1;"); 
    Viele Grüße
     
    Ohooo, was ist das? Ein Türknopf? Ausgezeichnet!

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 03.04.09, 11:51
  2. Der Anfang vom Ende
    Von mAu im Forum Fotografie
    Antworten: 7
    Letzter Beitrag: 26.10.07, 00:29
  3. slidemenu am anfang und ende anhalten
    Von PeterMcB im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 01.12.06, 12:47
  4. Anfang und Ende definieren?
    Von asdfg im Forum PHP
    Antworten: 9
    Letzter Beitrag: 03.04.06, 17:30
  5. Objekt am Anfang und Ende langsamer
    Von Xo-mate im Forum Cinema 4D
    Antworten: 12
    Letzter Beitrag: 05.03.05, 20:23