php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.09.2007, 23:42  
Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 33
Nightuser befindet sich auf einem aufstrebenden Ast
Standard SQL Datei mit PHP importieren?!

Hi Leute!

Entweder ich steh grad aufm Schlauch, oder es geht nicht. Wie importiert man denn bitte eine *.sql - Datei mit PHP in die Datenbank. Also ich schreibe gerade ein einer Installationssoftware von einem CMS, und darin soll eben auch die Datenbank installiert werden.

Hab eine datenbank.sql Datei.

Mit welchem Befehl importiere ich die *.sql - Datei in die Datenbank?!?

Geht das überhaupt irgendwie?!
Mit welchem Befehl?

Matze
Nightuser ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.09.2007, 09:41  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Habs jetzt noch nie direkt in PHP versucht, aber lese dir mal den Inhalt der .sql-Datei aus und schreib alles in ein mysql_query() rein.
Montellese ist offline  
Alt 04.09.2007, 10:51  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

Das wird so nicht gehen, da mysql_query() nur eine Abfrage durchführen kann.

Du musst also deine .sql-Datei auslesen, in einzelne Abfragen aufsplitten und diese per Schleife und mysql_query() nacheinander durchjagen.

Ob es hierzu schon eine fertige Funktion zum importieren von *.sql-Files seitens PHP gibt, weiß ich nicht. Vielleicht spuckt Google etwas darüber aus

Schon mal in phpMyAdmin nachgeschaut, wie die das hand haben mit import von *.sql-Dateien?

Grüße
Da Psy
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)
PsychoEagle ist offline  
Alt 04.09.2007, 12:23  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Ah stimmt, hab grade in der Datei nachgeschaut in der ich selber mal sowas programmiert habe! Ich habe einfach den Inhalt des *.sql-Files bei folgenden Keywords getrennt: DROP, CREATE, INSERT - und dann habe ich für jeden dieser drei Teile ein mysql_query() ausgeführt.
Kommt aber natürlich drauf an, was man beim Exportieren alles einstellt etc.
Montellese ist offline  
Alt 04.09.2007, 13:13  
Benutzer
 
Registriert seit: 11.08.2007
Beiträge: 39
Nendrew befindet sich auf einem aufstrebenden Ast
Standard

Da bei sql Dateien die einzelnen Befehle durch einen ";" getrennt werden und die Kommentare, welche in der sql-Datei vorkommen ebenfalls als Kommentare von mysql_query() interpretiert werden, kann man auch einfach bein den Strichpunkten trennen.
Sieht dann in etwa so aus:
PHP-Code:
$queries explode(";",$sql);

foreach(
$queries as $query)
    
mysql_query($query,$conn); 
Hoffe das hilft weiter.
Nendrew ist offline  
Alt 04.09.2007, 13:50  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Und was ist, wenn da irgend ein Feld ist, das einen Text gespeichert hat, der einen ; drin hat? Dann ist alles kaputt ^^ Naja ist mit DROP, CREATE etc auch so, aber meiner Meinung nach ist es unwahrscheinlicher, dass genau DROP, CREATE oder INSERT in einem Text vorkommt als ein ;.
Montellese ist offline  
Alt 04.09.2007, 13:56  
Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 33
Nightuser befindet sich auf einem aufstrebenden Ast
Standard Lösung

Ich habs nun ähnlich gelöst:

PHP-Code:
   $import file_get_contents("dateixyz.sql");

   
$import preg_replace ("%/\*(.*)\*/%Us"''$import);
   
$import preg_replace ("%^--(.*)\n%mU"''$import);
   
$import preg_replace ("%^$\n%mU"''$import);

   
mysql_real_escape_string($import); 
   
$import explode (";"$import); 

   foreach (
$import as $imp){
    if (
$imp != '' && $imp != ' '){
     
mysql_query($imp);
    }
   } 
Funkioniert bestens!
Nightuser ist offline  
Alt 31.01.2009, 12:49  
Neuer Benutzer
 
Registriert seit: 31.01.2009
Beiträge: 2
kwalke befindet sich auf einem aufstrebenden Ast
Standard

Ich möchte in der zu importierenden Datei Variablen einsetzen. Ist das möglich?
kwalke ist offline  
Alt 31.01.2009, 14:09  
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Beiträge: 316
PHP-Kenntnisse:
Fortgeschritten
moveax1 befindet sich auf einem aufstrebenden Ast
Standard

warum nicht

entweder du suchst und ersetzt per Regular Expressions oder du lässt dir die zu importierende Datei per Skript zusammenstellen
__________________
twitter.com/moveax1 || http://modxcms.com/ || http://ubuntuusers.de/

$live->free() OR die();
moveax1 ist offline  
Alt 31.01.2009, 14:22  
Neuer Benutzer
 
Registriert seit: 31.01.2009
Beiträge: 2
kwalke befindet sich auf einem aufstrebenden Ast
Standard

ah hab zu schnell gepostet hab schon gelöst

danke für deine antwort
kwalke ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] importieren von csv datei in mysql tabelle Datenbanken 3 02.06.2009 23:45
[Erledigt] Hochgeladene Datei wird doppelt abgelegt thecracked PHP Tipps 2008 3 01.07.2008 16:31
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
XML Datei in Datenbank importieren Plague PHP Tipps 2007 13 06.08.2007 10:26
CSV Datei in MySQL importieren phpler1609 PHP Tipps 2006 6 23.03.2006 14:48
Datei durchsuchen Wöllchen Beitragsarchiv 3 02.03.2006 22:23
Datei importieren Mano PHP Tipps 2005-2 3 16.10.2005 15:14
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
Ordner Struktur auslesen bestimmte datei finden .... silverghost PHP Tipps 2005 3 24.05.2005 13:55
[Erledigt] CSV Datei in MySQL importieren Datenbanken 3 04.04.2005 09:11
Zeilenumbrüche & Neudatein mit PHP PHP Tipps 2004 5 21.10.2004 11:38
Datei mit php erzeugen Stümper PHP Tipps 2004 4 12.10.2004 12:51
php und ftp PHP Tipps 2004 4 07.10.2004 09:58
[Erledigt] Kann SQL Datei über phpMyAdmin nicht importieren Datenbanken 1 11.08.2004 09:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php sql import, php sql datei importieren, php import sql file, sql import php, php import sql, php sql importieren, php import, sql datei importieren php, php .sql import, sql datei mit php importieren, sql importieren php, php sql datei, php importieren, php sql file, php .sql importieren, import sql file php, import sql php, php datei importieren, sql datei auslesen, sql befehl import

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum