PHP-Script installieren

Hallo Leutz,
ich habe einen PHP-Script selber geschrieben, und biete diesen auch zum Download an. Sehr viele User haben jedoch Probleme damit, die *.sql mit phpMyAdmin einzuspielen.

Jetzt stellt sich mir die frage, wie man (ohne großen Aufwand) einen Installer schreiben könnte, der diese *.sql Datei in die Datenbank einspielt.

mfg. Marlin

Warum packst du die jeweiligen mysql-querys, die für die Erstellung der Tabellen zuständig sind, nicht einfach in eine PHP?

install.php
[PHP]<?php
include(„config.php“);

$sql = „CREATE TABLE …“;

if (mysql_query($sql)) {
echo „Tabellen erfolgreich erstellt!“;
} else {
echo "Fehler: ".mysql_error());
}

?>[/PHP]

MfG Icy

Ich dachte eigentlich, dass man es anders machen könnte. Das nur die *.sql eingelesen werden muss, dann könnte ich es für meine anderen scripts auch verwenden :slight_smile:

lese die datei mit PHP: file - Manual ein.
Dann prüfst du erstmal jede Zeile auf ein – am anfang. Diese Zeilen schneidest du 'raus.

Dann implode auf das array das du einen string bekommst und wieder explode an den ;
Jetzt für jeden Eintrag im Array ein Query machen.

[php]
$sqlfile = file(„my.sql“);
foreach($sqlfile as $k=>$v) {
if (preg_match(„~^–.+$~“, $v))
unset($sqlfile[$k]);
}
$commands = explode(„;“, implode(„“, $sqlfile));
foreach($commands as $command) {
mysql_query($command) or
trigger_error(„[“.mysql_errno()."] ".mysql_error(), E_USER_WARNING);
}
echo „done…“;
[/php]

ich würde noch nen trim machen damit du auch wirklich sicher gehen kannst, das du keine leeren querys abschickst ^^

nagut dann so :wink:

[PHP]
$sqlfile = array_map(„trim“, file(„my.sql“));
foreach($sqlfile as $k=>$v) {
if (preg_match(„~^–.+$~“, $v) or $v == „“)
unset($sqlfile[$k]);
}
$commands = explode(„;“, implode(„“, $sqlfile));
foreach($commands as $command) {
mysql_query($command) or
trigger_error(„[“.mysql_errno()."] ".mysql_error(), E_USER_WARNING);
}
echo „done…“; [/PHP]

Hey danke euch vielmals :slight_smile:

Marlin