Mein Installationsscript offenbahrte in der Vergangenheit mir bisher nicht nachvollziehbare Schwächen. Diese Script lädt SQL-Dateien, trennt die einzelnen Anweisungen voneinander ab und führt diese dann nacheinander aus.
Das Problem ist, dass in letzter Zeit die Trennung der einzelnen Anweisungen gelegentlich Schwierigkeiten bereitet. Bei einigen Nutzern des Scriptes kam es vor, dass die Anweisungen nicht getrennt wurden, was selbstverständlich einen Fehler beim Ausführen von mysql_query() bewirkte.
Amüsant ist, dass sich dieses Problem wohl nicht auf die Serverumgebung zurückführen lässt. Trat das Problem bei einem Nutzer auf, habe ich die Installation von meinem Rechner ausgeführt und wurde mit diesem Problem erstaunlicherweise nicht konfrontiert. Daher vermute ich, dass dies aus der Übertragung der Daten resultiert.
Jetzt suche ich das eigentliche Problem und natürlich eine Möglichkeit, ein derartiges Verhalten des Scriptes künftig zu unterbinden. Da ich das Problem nicht replizieren kann, ist es mir in erster Linie wichtig, Hinweise bezüglich der Problemursache zu erhalten.
PHP-Code:
function install($filename, $show=1)
{
global $database, $sql_prefix;
//Datei einlesen
$file = implode("", file("sql/" . $filename . ".sql"));
$array = split(";\r\n\r\n", $file);
//Anweisungen ausführen
for($i=0; $i<count($array); $i++)
{
$sql = $array[$i];
$sql = str_replace("fn1_", "fn" . $sql_prefix . "_", $sql);
$query = $database->db_query("$sql");
//Statusmeldung ausgeben (Tabellenname)
if($show)
{
$table = split("`", $array[$i]);
echo str_replace("fn1_", "fn" . $sql_prefix . "_", $table[1]) . "<br>";
}
}
}
Amüsant ist, dass sich dieses Problem wohl nicht auf die Serverumgebung zurückführen lässt. Trat das Problem bei einem Nutzer auf, habe ich die Installation von meinem Rechner ausgeführt und wurde mit diesem Problem erstaunlicherweise nicht konfrontiert. Daher vermute ich, dass dies aus der Übertragung der Daten resultiert.
Jetzt suche ich das eigentliche Problem und natürlich eine Möglichkeit, ein derartiges Verhalten des Scriptes künftig zu unterbinden. Da ich das Problem nicht replizieren kann, ist es mir in erster Linie wichtig, Hinweise bezüglich der Problemursache zu erhalten.
Kommentar