Seite 1 von 1

Backup

Verfasst: 01.11.2004 21:47
von Gert
Halo,

ein Kolege hat bei seinem Forum die gesamte DB gelöscht:-(

Nun hat er nur noch ein älteres Backup, aber seit diesem Backup wurden Mods eingebaut.

Hab das Backup mal aufgespielt, aber nun kommt folgende Fehlermeldung:
phpBB : Kritischer Fehler

Error updating last visit time

DEBUG MODE

SQL Error : 1054 Unknown column 'user_lastlogon' in 'field list'

UPDATE phpbb_users SET user_session_time = 1099342002, user_session_page = 0, user_lastvisit = 1099342002, user_lastlogon = 1099342002, user_totallogon=user_totallogon+1 WHERE user_id = -1

Line : 171
File : /home/www/web205/html/phpBB2/includes/sessions.php
Hat einer ne Idee??

Gruss Gert

Verfasst: 01.11.2004 21:52
von Gert
.......ach ja, der Last Visit iss einer der Mods der nach diesem Backup eingesetzt wurde.

Hab nun versucht die Tabellen des Last Visit noch anzulegen per php myadmin....kommt jedoch ne Fehlermeldung:-(
Fehler

SQL-Befehl :

$sql = array(

'ALTER TABLE '.USERS_TABLE. ' ADD user_lastlogon INT (11) DEFAULT "0" not null', 'UPDATE '.USERS_TABLE. ' SET user_lastlogon=user_lastvisit WHERE user_lastlogon="0"', 'INSERT INTO '.CONFIG_TABLE. ' (config_name, config_value) VALUES ("hidde_last_logon", "0")', 'ALTER TABLE '.USERS_TABLE. ' ADD user_totaltime INT (11) DEFAULT "0"', 'ALTER TABLE '.USERS_TABLE. ' ADD user_totallogon INT (11) DEFAULT "0"', 'ALTER TABLE '.USERS_TABLE. ' ADD user_totalpages INT (11) DEFAULT "0"', 'UPDATE '.USERS_TABLE. ' SET user_totaltime=(user_session_time-user_lastlogon) WHERE user_totaltime="0" AND user_lastlogon>0', 'UPDATE '.USERS_TABLE. ' SET user_totallogon=1 WHERE user_totallogon="0" AND user_session_time<>"0"'
)

MySQL meldet:


#1064 - 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 '$sql=array(
'ALTER TABLE '.USERS_TABLE.' ADD user_lastlogon IN
Gruss Gert

Verfasst: 01.11.2004 21:55
von Amdosh
Zu diesen Mod gehört ein Datenbank-Update, damit wird das abgefragte Feld zu der Datenbank zumindest wieder hinzugefügt. Denn dieses Tabellenfeld wurde durch die "Neueinspielung" des Backup's wieder entfernt. Zusätzlich danach diesen Mod einmal über die Datenbank jagen, sodass er die Tabellen auf sonstige Tabellenfehler noch überprüft.

Bei sonstigen Mods die neue Datenbankfelder angepasst/erstellt haben je nach Mod auch die Update Datei noch mal benutzen.

Grüsse Amdosh

Verfasst: 01.11.2004 22:00
von Gert
Hi Amdosh....

Zu diesen Mod gehört ein Datenbank-Update, damit wird das abgefragte Feld zu der Datenbank zumindest wieder hinzugefügt.
Das iss mir schon klar, bloss wie spiel ich sieses Update wieder auf wenn das Forum nicht geht??

Gruss Gert

Verfasst: 01.11.2004 22:19
von Amdosh
Die Update-Datei ist eine, die man über den Browser ausführt, sofern du den Last_visit Mod von Niels (die Namen von den Tabellenfelder passen dazu) kannst du die update-Datei hiervon ziehen.
Oder direkt von http://www.phpbbhacks.com/download/237 .

Grüsse Amdosh

Verfasst: 01.11.2004 22:39
von Gert
Hi amdosh,

das iss mir schon klar, bloss geht das ja nur wenn ich im Forum eingeloggt bin.
Und da das Forum ja nicht geht iss das schwer möglich:-(

Gruss Gert

Verfasst: 02.11.2004 10:34
von Christian_W
1. ändere den Titel, dass er zum Problem passt. (Dein Problem ist nicht das Backup sondern das updaten der DB ohne Dich einloggen zu können)

2. in der last_visit_db_update.php findest Du folgende SQL-Befehle:

Code: Alles auswählen

'ALTER TABLE '.USERS_TABLE.' ADD user_lastlogon INT (11) DEFAULT "0" not null',
'UPDATE '.USERS_TABLE.' SET user_lastlogon=user_lastvisit WHERE user_lastlogon="0"',
'INSERT INTO '.CONFIG_TABLE.' (config_name, config_value) VALUES ("hidde_last_logon", "0")',
'ALTER TABLE ' . USERS_TABLE .' ADD user_totaltime INT (11) DEFAULT "0"',
'ALTER TABLE ' . USERS_TABLE .' ADD user_totallogon INT (11) DEFAULT "0"',
'ALTER TABLE ' . USERS_TABLE .' ADD user_totalpages INT (11) DEFAULT "0"',
'UPDATE '. USERS_TABLE .' SET user_totaltime=(user_session_time-user_lastlogon) WHERE user_totaltime="0" AND user_lastlogon>0',
'UPDATE '. USERS_TABLE .' SET user_totallogon=1 WHERE user_totallogon="0" AND user_session_time<>"0"'
Darin ersetzt Du einfach USERS_TABLE mit phpbb_users, löschst unnötige Hochkommas und schließt die Zeilen mit einem Strichpunkt ab. (phpbb_ musst Du natürlich ggf. mit Deinem Prefix ersetzen.)
Kurz Du machst daraus Befehle die KB:phpmyadmin versteht und führst sie dann mit phpMyAdmin aus.

Code: Alles auswählen

ALTER TABLE phpbb_users ADD user_lastlogon INT (11) DEFAULT "0" not null;
UPDATE phpbb_users SET user_lastlogon=user_lastvisit WHERE user_lastlogon="0";
INSERT INTO phpbb_config (config_name, config_value) VALUES ("hidde_last_logon", "0");
ALTER TABLE phpbb_users ADD user_totaltime INT (11) DEFAULT "0";
ALTER TABLE phpbb_users ADD user_totallogon INT (11) DEFAULT "0";
ALTER TABLE phpbb_users ADD user_totalpages INT (11) DEFAULT "0";
UPDATE phpbb_users SET user_totaltime=(user_session_time-user_lastlogon) WHERE user_totaltime="0" AND user_lastlogon>0;
UPDATE phpbb_users SET user_totallogon=1 WHERE user_totallogon="0" AND user_session_time<>"0";
Gruß Christian