Ich benutze Contenido 4.3.1b, gestern von www.contenido.de downgeloaded, bei Strato mit PHP 4.1.2 und MYSQL Client API version 3.23.39. Wenn ich Contenido mit den Beispielen installiere, funktioniert das Anlegen der Tabellen in der Datenbank nicht richtig. Jede Tabelle wird nur mit dem ersten Feld angelegt, alle weiteren Felder fehlen. Fehlermeldungen während der Installation bekomme ich keine, aber auf der Login-Seite kommen die ersten Fehlermeldungen aufgrund der falschen Tabellenstruktur.
Wenn ich von 4.3b von der I-PRO-CD auf 4.3.1b upgraden versuche, dann werden die Tabellenstrukturen scheinbar unverändert belassen, wodurch nach dem Einloggen die ersten Fehlermeldungen erscheinen.
Ist mein Problem die etwas ältere PHP-Version?
Kann ich das Problem durch Anpassung der Prozedur dbUpgradeTable beheben?
Danke,
Christian.
Problem bei der Installation von 4.3.1b bei Strato
PHP 4.1.x eigentlich in Ordnung
Hallo,
kannst Du mal versuchen die sql-Dateien (liegen in setup/sql) per phpmyadmin einzuspielen? Eigentlich kann es nicht an PHP liegen, da ja generell Tabellen angelegt werden. Was mich etwas wundert, dass es keinerlei Fehlermeldungen gibt.
Gruß
Harald
kannst Du mal versuchen die sql-Dateien (liegen in setup/sql) per phpmyadmin einzuspielen? Eigentlich kann es nicht an PHP liegen, da ja generell Tabellen angelegt werden. Was mich etwas wundert, dass es keinerlei Fehlermeldungen gibt.
Gruß
Harald
Hallo,
daran hatte ich zwar schon gedacht, ich kann aber bei der Version 4.3.1b leider keine CREATE TABLE statements in standard.sql, base.sql oder examples.sql finden, während sie in der Version 4.3b noch in standard.sql vorhanden waren. Auch in allen anderen Verzeichnissen konnte ich keine CREATE TABLE für die gesamte Datenbank finden.
Die erwähnte Prozedur dbUpgradeTable (aus functions.database.php im Verzeichnis contenido/includes) scheint so gebaut zu sein, dass Sie bei jedem Aufruf ein Feld gemäß Parameter zur Tabelle hinzufügt, wobei sie zwischen CREATE TABLE für das erste Feld und ALTER TABLE für alle Folgefelder unterscheiden kann. Aufgrund des PHP-Codes auch meine Vermutung, dass die PHP- oder MYSQL-Version eine Rolle spielen könnte.
dbUpgradeTable wird ausschliesslich in contenido/upgrade.php verwendet, welche wiederum ausschliesslich in /contenido/setup/index.php verwendet wird.
Vielleicht bin ich aber auch am Holzweg, und finde nur den Codeteil nicht, der neu installiert. Ich kann zwar mit SQL gut umgehen, bin aber ein Neuling, was Contenido betrifft.
Danke für jeden Tip,
Christian.
daran hatte ich zwar schon gedacht, ich kann aber bei der Version 4.3.1b leider keine CREATE TABLE statements in standard.sql, base.sql oder examples.sql finden, während sie in der Version 4.3b noch in standard.sql vorhanden waren. Auch in allen anderen Verzeichnissen konnte ich keine CREATE TABLE für die gesamte Datenbank finden.
Die erwähnte Prozedur dbUpgradeTable (aus functions.database.php im Verzeichnis contenido/includes) scheint so gebaut zu sein, dass Sie bei jedem Aufruf ein Feld gemäß Parameter zur Tabelle hinzufügt, wobei sie zwischen CREATE TABLE für das erste Feld und ALTER TABLE für alle Folgefelder unterscheiden kann. Aufgrund des PHP-Codes auch meine Vermutung, dass die PHP- oder MYSQL-Version eine Rolle spielen könnte.
dbUpgradeTable wird ausschliesslich in contenido/upgrade.php verwendet, welche wiederum ausschliesslich in /contenido/setup/index.php verwendet wird.
Vielleicht bin ich aber auch am Holzweg, und finde nur den Codeteil nicht, der neu installiert. Ich kann zwar mit SQL gut umgehen, bin aber ein Neuling, was Contenido betrifft.
Danke für jeden Tip,
Christian.
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
Hallo Christian,
ja, das ist soweit richtig. Du kannst zum Test die Datei "upgrade.php" modifizieren (dort die Parameter für die Datenbank sowie Benutzer und Passwort anpassen) und diese dann aufrufen, dann müßtest du auch Fehlermeldungen bekommen.
Es wäre interessant, welche das sind, denn wir haben den Mechanismus ja selbst mehrmals getestet (auch mit der PHP-Version 4.1.2).
Grüße,
Timo
ja, das ist soweit richtig. Du kannst zum Test die Datei "upgrade.php" modifizieren (dort die Parameter für die Datenbank sowie Benutzer und Passwort anpassen) und diese dann aufrufen, dann müßtest du auch Fehlermeldungen bekommen.
Es wäre interessant, welche das sind, denn wir haben den Mechanismus ja selbst mehrmals getestet (auch mit der PHP-Version 4.1.2).
Grüße,
Timo
Hallo Timo,
danke für den Tip, ich konnte das Problem finden und zumindest für meine Version beheben:
Mein Strato-Account hat die Version MYSQL Client API version 3.23.39, welche anscheinen die folgende Syntax noch nicht versteht:
ALTER TABLE ADD COLUMN (name type);
Die ältere Syntax
ALTER TABLE ADD COLUMN name type;
funktioniert. In der Prozedur dbUpgradeTables habe ich die Klammerung rausgenommen (kein Problem, da auch nur ein Feld hinzugefügt wird) und danach funktionierte die Installation der Tabellen.
Vielleicht kann man in der nächsten Version die Klammerung wegnehmen, um so noch weiter rückwärts kompatibel zu werden.
Christian.
danke für den Tip, ich konnte das Problem finden und zumindest für meine Version beheben:
Mein Strato-Account hat die Version MYSQL Client API version 3.23.39, welche anscheinen die folgende Syntax noch nicht versteht:
ALTER TABLE ADD COLUMN (name type);
Die ältere Syntax
ALTER TABLE ADD COLUMN name type;
funktioniert. In der Prozedur dbUpgradeTables habe ich die Klammerung rausgenommen (kein Problem, da auch nur ein Feld hinzugefügt wird) und danach funktionierte die Installation der Tabellen.
Vielleicht kann man in der nächsten Version die Klammerung wegnehmen, um so noch weiter rückwärts kompatibel zu werden.
Christian.
Hallo Chrism,
habe eben versucht, Contenido 4.3.1 auf Strato zu installieren und bin dabei genause auf die Nase gefallen. Ich kann mich noch nicht einmal als sysadmin einloggen, erhalte aber immer die beschriebenen SQL-Fehlermeldungen.
Könntest Du deine modifizierte sql-Datei zur Verfügung stellen, evt. noch einmal mit einer genauen Schritt für Schritt-Anleitung? Würde mir - und vielen anderen - sicher viel Arbeit ersparen.
Die 4.3.2.1b habe ich wegen der bekannten Performance Probleme nicht installiert. Könnte ich aber auch eine sql-Datei aus dieser Version verwenden und mit mysqladmin einspielen? Muß ich die bereits angelegten Tabellen vorher manuell löschen?
vy thx im Voraus,
Klaus
habe eben versucht, Contenido 4.3.1 auf Strato zu installieren und bin dabei genause auf die Nase gefallen. Ich kann mich noch nicht einmal als sysadmin einloggen, erhalte aber immer die beschriebenen SQL-Fehlermeldungen.
Könntest Du deine modifizierte sql-Datei zur Verfügung stellen, evt. noch einmal mit einer genauen Schritt für Schritt-Anleitung? Würde mir - und vielen anderen - sicher viel Arbeit ersparen.
Die 4.3.2.1b habe ich wegen der bekannten Performance Probleme nicht installiert. Könnte ich aber auch eine sql-Datei aus dieser Version verwenden und mit mysqladmin einspielen? Muß ich die bereits angelegten Tabellen vorher manuell löschen?
vy thx im Voraus,
Klaus
Zum Haareraufen!
Hallo Zusammen,
es ist zum Haareraufen! Habe die 4.3.1 zunächst problemlos auf dem Localhost installiert und mir dann mit der Exportfunktion einen SQL-Dump mit den benötigten CREATE-TABLE Statements erzeugt, um die oben beschriebenen Patche im PHP-Code zu umgehen.
Beim Anlegen der Tabellen mit mysqladmin auf meiner Strato-Präsenz erhalte ich nun die folgende Fehlermeldung:
Kann nach meiner SQL-Referenz keinen Fehler finden.
Wer hat eine brauchbare Idee,
Klaus
es ist zum Haareraufen! Habe die 4.3.1 zunächst problemlos auf dem Localhost installiert und mir dann mit der Exportfunktion einen SQL-Dump mit den benötigten CREATE-TABLE Statements erzeugt, um die oben beschriebenen Patche im PHP-Code zu umgehen.
Beim Anlegen der Tabellen mit mysqladmin auf meiner Strato-Präsenz erhalte ich nun die folgende Fehlermeldung:
Code: Alles auswählen
CREATE TABLE con_area (
idarea int(10) NOT NULL default '0',
parent_id varchar(255) NOT NULL default '0',
name varchar(255) NOT NULL default '',
relevant tinyint(1) NOT NULL default '0',
online tinyint(1) NOT NULL default '0',
PRIMARY KEY (idarea),
KEY idarea (idarea, name, online),
KEY idarea_2 (idarea),
KEY name_2 (name),
FULLTEXT KEY name (name)
) TYPE=MyISAM
MySQL meldet: You have an error in your SQL syntax near 'KEY name (name) ) TYPE=MyISAM' at line 11
Wer hat eine brauchbare Idee,
Klaus