der Wink mit dem Zaunpfahl....
Folgendes erhalte ich:
Code: Alles auswählen
Database error:
Invalid SQL: CREATE TABLE cpo4_pagetemplates (id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL default '', user_id int(11) NOT NULL default '0', pagetemplate text NOT NULL, saved datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (id)) ENGINE=MyISAM DEFAULT CHARSET=latin1
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=latin1' at line 1 (1064)
Das Problem liegt in ENGINE=... begründet, da dieser erst ab MySQL 5.x greift, muss hier noch TYPE=... verwendet werden. Wobei ISAM ja eh (meist) Default ist.
Hier das offizielle Statement:
Um ausdrücklich zu sagen, dass Sie eine MyISAM-Tabelle möchten, verwenden Sie die Tabellenoption ENGINE:
CREATE TABLE t (i INT) ENGINE = MYISAM;
Der ältere Begriff TYPE wird aus Gründen der Abwärtskompatibilität noch als Synonym für ENGINE akzeptiert, doch ENGINE ist der aktuelle Begriff, während TYPE mittlerweile veraltet ist.
Normalerweise ist eine ENGINE-Angabe für die MyISAM-Speicher-Engine unnötig. MyISAM ist ohnehin die Standard-Engine, es sei denn, die Standardeinstellung wurden geändert. Um in solchen Situationen ganz sicherzugehen, dass MyISAM verwendet wird, sollten Sie explizit die Option ENGINE verwenden.
Der workaround dazu:
Datei: update.php
Suchen nach:
Code: Alles auswählen
echo '<p>Erzeuge Tabelle ' . $dbPrefix . '_pagetemplates...</p>';
$upgradeDB->query('CREATE TABLE ' . $dbPrefix . "_pagetemplates (id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL default '', " .
"user_id int(11) NOT NULL default '0', pagetemplate text NOT NULL, saved datetime NOT NULL default '0000-00-00 00:00:00', " .
'PRIMARY KEY (id)) ENGINE=MyISAM DEFAULT CHARSET=latin1');
Ändern in:
Code: Alles auswählen
echo '<p>Erzeuge Tabelle ' . $dbPrefix . '_pagetemplates...</p>';
$upgradeDB->query('CREATE TABLE ' . $dbPrefix . "_pagetemplates (id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL default '', " .
"user_id int(11) NOT NULL default '0', pagetemplate text NOT NULL, saved datetime NOT NULL default '0000-00-00 00:00:00', " .
'PRIMARY KEY (id)) TYPE=MyISAM CHARSET=latin1');
Dann läuft das Script auch mit MySQL 4.x.
Gruß Gandalf