Seite 1 von 2

install.php abändern: Weitere Tabellen autom. einfügen

Verfasst: 16.10.2004 00:47
von Faser
Hallo,


ich bin gerade dabei, eine Installations-Version für ein modifiziertes phpBB zu schreiben, wofür ich die standardmäßige Installations-Routine von phpBB benutzen wollte (./install/install.php).

Die in mein Board eingebauten Modifikationen haben teilweise auch MySQL-Tabellen angelegt, die nun natürlich auch automatisch mitinstalliert werden sollen.

Da phpBB die Datei mysql_schema.sql nutzt (im Verzeichnis ./install/schemas/), um die DB-Struktur zu installieren, habe ich meine 23 weiteren Tabellen einfach hinten angehängt.

Statt 27 Tabellen müssten also jetzt 50 erstellt werden, phpBB installiert aber immer nur die 27 Tabellen.


In der install.php wird die Datei mysql_schema.sql, also der SQL-Dump, in ihre einzelnen Befehle zerlegt (die Funktion dazu findet sich in ./includes/sql_parse.php).
Anschließend werden alle Befehle mit einer "for"-Schleife einzeln ausgeführt. Als Begrenzung für diese Schleife wird sizeof($sql_query) benutzt (sizeof() ist ein Alias für count()), wobei $sql_query die einzelnen Befehle der mysql_schema.sql beinhaltet.
Dieses sizeof($sql_query) ergibt komischerweise auch nur 27.
Auch wenn ich die Begrenzung mit 50 ersetze, werden auch nur 27 Tabellen installiert.

Woran kann das liegen? Es sieht ja wohl so aus, als ob meine SQL-Befehle fehlerhaft wären.
Ich habe schon alle SQL-Befehle überprüft, eigentlich sollte alles funktionieren.


Ich habe mal die mysql_schema.sql hochgeladen, vielleicht findet ja jemand etwas:
- http://217.20.117.106/ablage/nikolaus/mysql_schema.sql
Es geht dort um die Daten ab dem Hinweis
# --------------------------------------------------------
# The following tables are added by modifications
# that are installed into iStudy.
# --------------------------------------------------------
(findet sich ziemlich weit am Ende)


Vielen Dank schon einmal für eure Hilfe, ich bin total verzweifelt... Argh. :oops:
Faser

Verfasst: 16.10.2004 01:24
von CC_FH-Bielefeld
ich hab zwar null ahnung, aber nur um mal lapidar zu checken ob die befehle korrekt sind, hab ichs mal in meine sql importiert...

ich hab 50 vollständige Tabellen!

wäre es eine alternative, das einfügen der datei mit einem selbstgeschriebenen php-skript zu realisieren? (okay, ist keine echte lösung, eher nen mieses goto :roll: )

gruß Tim

Verfasst: 16.10.2004 10:32
von Faser
Wenn ich nicht weiter komme, bleibt mir nichts anderes übrig.

Im Grunde müssen die Befehle auch alle richtig sein, da sie ja aus phpMyAdmin exportiert wurden...

Verfasst: 16.10.2004 10:35
von Acid
Nur um dich noch mehr zu verwirren, bei mir werden die 50 Tabellen auch alle sauber erstellt. :wink:

Eventuell nochmal versuchen (ohne die install.php angepasst zu haben).

Verfasst: 16.10.2004 13:05
von Faser
Hmm? Hast du meine mysql_schema.sql zur Installation benutzt? In phpMyAdmin werden sie sowieso alle normal erstellt... :cookie:

Verfasst: 16.10.2004 14:07
von Acid
Ja, ich hatte deine mysql_schema.sql in den schema-Ordner kopiert :wink: und das Board neuinstalliert.

Verfasst: 16.10.2004 14:25
von Faser
Hmm, dann werde ich das nocheinmal versuchen mit der originalen Install-Datei.

Mit der Standard mysql_schema.sql funktioniert es komischerweise auch mit meiner modifizierten install.php.

Naja, ich versuche es einfach nochmal.

Verfasst: 16.10.2004 15:39
von Faser
So langsam drehe ich total durch :D:

Wenn ich meinen Inhalt von der mysql_schema.sql herauskopiere und in phpMyAdmin in das SQL-Feld einfüge, werden alle 50 Tabellen erstellt.

Wenn ich allerdings in phpMyAdmin die mysql_schema.sql als Datei im Import-Dialog auswähle, werden nur 27 Tabellen erstellt.

Wie kann denn das?

Verfasst: 16.10.2004 17:15
von Christian_W
Faser hat geschrieben:Wenn ich allerdings in phpMyAdmin die mysql_schema.sql als Datei im Import-Dialog auswähle, werden nur 27 Tabellen erstellt.
Ich konnte es nicht glauben aber das hatte ich auch gerade.
Faser hat geschrieben:Wie kann denn das?
Keine Ahnung. Vieleicht irgendwelche Zeichen die Dein Editor nicht so speichert wie es phpMyAdmin erwartet.
Exportiere doch mal die ganzen Tabellen und benutze dann die als mysql_schema.sql. Also nicht Deine Erweiterung in die Original-Datei kopieren, sondern die Tabellenstruktur in eine neue Datei exportieren.

Gruß Christian

Verfasst: 16.10.2004 17:46
von Faser
Dann kommt leider das hier:
install.php hat geschrieben:ährend der Installation trat ein Fehler auf

Beim Update der Datenbank trat ein Fehler auf

Could not insert board_startdate :: INSERT INTO forum_config (config_name, config_value) VALUES ('board_startdate', 1097941666) :: 871 :: /var/www/spielecke/installversion/install/install.php

Could not insert default_lang :: INSERT INTO forum_config (config_name, config_value) VALUES ('default_lang', 'german') :: 878 :: /var/www/spielecke/installversion/install/install.php

Could not insert default_lang :: UPDATE forum_config SET config_value = 'xniggox@web.de' WHERE config_name = 'board_email' :: 895 :: /var/www/spielecke/installversion/install/install.php

Could not insert default_lang :: UPDATE forum_config SET config_value = '/spielecke/installversion/' WHERE config_name = 'script_path' :: 895 :: /var/www/spielecke/installversion/install/install.php

Could not insert default_lang :: UPDATE forum_config SET config_value = '80' WHERE config_name = 'server_port' :: 895 :: /var/www/spielecke/installversion/install/install.php

Could not insert default_lang :: UPDATE forum_config SET config_value = '217.20.117.106' WHERE config_name = 'server_name' :: 895 :: /var/www/spielecke/installversion/install/install.php

Could not update admin info :: UPDATE forum_users SET username = 'admin', user_password='21232f297a57a5a743894a0e4a801fc3', user_lang = 'german', user_email='xniggox@web.de' WHERE username = 'Admin' :: 906 :: /var/www/spielecke/installversion/install/install.php

Could not update user_regdate :: UPDATE forum_users SET user_regdate = 1097941666 :: 913 :: /var/www/spielecke/installversion/install/install.php
Das war ja der Grund, warum ich es überhaupt so kompliziert gemacht hatte...


EDIT: Es werden dann übrigens garkeine Daten erstellt...