php.de

Zurück   php.de > php.de Intern > Wiki Diskussionsforum > Tutorials

Tutorials Hier findest Du Tutorials, welche nach und nach ein fertiges Script ergeben. Sehen, lernen & verstehen!

Antwort
 
LinkBack (5) Themen-Optionen Thema bewerten
Alt 29.07.2007, 15:34  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard PHP/MySQL: Queries aus SQL-Dateien extrahieren

Hallo,
kleines Skript, noch nicht im Einsatz aber mit einigen Test-Dateien erprobt:

Ermittelt die in einer SQL-Datei gespeicherten Queries und gibt diese als Array wieder. Die Trennung erfolgt über das Semikolon mit einer zusätzlichen Bedingung, dass darauf ein SQL-Schlagwort folgen muss. Kommentare werden vorher entfernt.

Da die Liste der Treffer mehrfach durchlaufen wird, kann es bei größeren Dateien zu Performance-Problemen kommen. In diesem Fall sollte jedoch so oder so ein Hoster verwendet werden, der den Zugang zur PHP-Funktion exec() freigibt, um die Datei direkt über die Konsole mittels MySQL zu importieren (welches extreme Geschwindigkeitsvorteile bringt).

Hier das Skript:
PHP-Code:
<?php
function getQueriesFromFile($file)
{
    
// import file line by line
    // and filter (remove) those lines, beginning with an sql comment token
    
$file array_filter(file($file),
                         
create_function('$line',
                                         
'return strpos(ltrim($line), "--") !== 0;'));
    
// this is a list of SQL commands, which are allowed to follow a semicolon
    
$keywords = array('ALTER''CREATE''DELETE''DROP''INSERT''REPLACE''SELECT''SET',
                      
'TRUNCATE''UPDATE''USE');
    
// create the regular expression
    
$regexp sprintf('/\s*;\s*(?=(%s)\b)/s'implode('|'$keywords));
    
// split there
    
$splitter preg_split($regexpimplode("\r\n"$file));
    
// remove trailing semicolon or whitespaces
    
$splitter array_map(create_function('$line',
                                          
'return preg_replace("/[\s;]*$/", "", $line);'),
                          
$splitter);
    
// remove empty lines
    
return array_filter($splittercreate_function('$line''return !empty($line);'));
}
?>
Die Anwendung könnte dann wie folgt aussehen:
PHP-Code:
<?php
$csvfile 
'my-dump-import.sql';
if (!
is_readable($csvfile)) {
  die(
"$csvfile does not exist or is not readable");
}
$queries getQueriesFromFile($csvfile);
for (
$i 0$ix count($queries); $i $ix; ++$i) {
  
$sql $queries[$i];
  if (!
mysql_query($sql)) {
    die(
sprintf("error while executing mysql query #%u: %s
\nerror: %s"
$i 1$sqlmysql_error()));
  }
}
echo 
"$ix queries imported";
?>
Edit: Danke robo47 noch für die Korrektur - 'import.sql' muss natürlich $file heißen
Edit 2: Danke Promaetheus für den Hinweis, dass $sql noch undefiniert war und erst mit $queries[$i] befüllt werden muss.
Zergling-new ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Antwort


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

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/tutorials/44468-php-mysql-queries-aus-sql-dateien-extrahieren.html
Erstellt von For Type Datum
Cronjob - Datenbank resetten - Web | Programmierung - PHPKIT Supportforum This thread Refback 13.08.2010 20:38
Cronjob - Datenbank resetten - Web | Programmierung - PHPKIT Supportforum This thread Refback 11.08.2010 14:11
Cronjob - Datenbank resetten - Web | Programmierung - PHPKIT Supportforum This thread Refback 11.08.2010 08:49
Webmasterpro Forum - Import von .sql-Dateien: Problem mit FK-Constraints - Tutorials, Tipps und Tricks für Webmaster auf Webmasterpro.de This thread Refback 03.03.2010 11:53
Webmasterpro Forum - Import von .sql-Dateien: Problem mit FK-Constraints - Tutorials, Tipps und Tricks für Webmaster auf Webmasterpro.de This thread Refback 03.03.2010 07:38

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Dateien mit PHP Hochladen h3ir PHP-Fortgeschrittene 9 29.05.2009 18:46
dateien aus verzeichnis einzeln als mail attachment versenden mathes PHP Tipps 2008 5 17.07.2008 19:45
PHP Dateien verschlüsseln GSJLink PHP-Fortgeschrittene 2 26.04.2008 12:29
[Logik] Mehrere Dateien als Anhang per Formular versenden PsychoEagle PHP Tipps 2008 2 27.08.2007 08:58
nur bestimmte Dateien aus einem Verzeichnis auslesen Madden PHP Tipps 2006 2 07.03.2006 17:10
Verzeichnis (Dateien) schützen aber per PHP zugriff zulassen Server, Hosting und Workstations 2 16.10.2005 10:13
Dateien löschen (mit "unlink") PHP Tipps 2005-2 8 09.06.2005 22:55
[Erledigt] Nur bestimmte Dateien anzeigen, wie mache ich das HILFE PHP Tipps 2005 4 02.04.2005 22:38
mehrere Dateien downloaden PHP Tipps 2005 3 03.03.2005 09:13
PEAR: HTTP_Request und Download großer Dateien Olsen PHP-Fortgeschrittene 9 09.01.2005 22:51
dateien zugänglich machen PHP Tipps 2004 8 22.10.2004 14:25
Mit PHP erzeugte Dateien besitzen die falschen Rechte PHP Tipps 2004 3 14.09.2004 12:54
[Erledigt] PHP Dateien auf Server einsehen - Verschlüsseln PHP Tipps 2004 6 12.09.2004 10:17
[Erledigt] Dateien aus Verzeichnissen vom Webserver auslesen und linken PHP Tipps 2004 3 08.09.2004 10:07
[Erledigt] Dateien können nicht erzeugt werden PHP-Fortgeschrittene 10 03.06.2004 16:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql in datei extrahieren, sql extrahieren, mysql query datei, remove sql file comments regex php, php mysql query, mysql query aus datei, php, php sql query from file, mysql query sql file, php mysql sql datei, http://www.php.de/tutorials/44468-php-mysql-queries-aus-sql-dateien-extrahieren.html, php mysql query file, php mysql file, sql daten extrahieren, php sql, php mysql querys from files, php .sql importieren, php script sql datei importieren, php mysql query sql file, php sql insert aus datei

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:17 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.