Hallo,
viele von Euch arbeiten sicher ebenfalls mit phpMyAdmin.
Folgende Frage:
Ich will eine Tabelle - bspw. Topics - aus einer DB A exportieren und anschliessend in einer anderen DB B importieren. Allerdings sollen dann in der DB B nur diejenigen Datensätze eingefügt werden, die in DB B noch nicht existieren.
Wenn ich zuvor beim Exportieren NICHT "Fehlerübergehenden INSERT-Befehl verwenden" markiert habe, wir ja bereits beim ersten in DB B importierten Datensatz angemeckert, dass dieser bereits existiert und der weitere Importvorgang abgebrochen. Leider nutzt es nichts, wenn ich beim Exportieren "Fehlerübergehenden INSERT-Befehl verwenden" aktiviere, weil dann sämtliche Datensätze in DB B eingefügt werden, selbst wenn diese dort schon existieren.
Gibt es da irgendeinen Trick mit phpMyAdmin? Oder lässt sich so etwas mit phpMyAdmin nicht realisieren?
Danke und Gruss
testit
phpMyAdmin:nur nicht bereits exist. Datensätze importieren?
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Wenn du die SQL Abfragen (mit phpBB_-Präfix) hast, würde ich Dir den DB-Update-Generator empfehlen.
Da wird jede Query ausgeführt und die INSERTS, die nicht klappen, geben einen Fehler. Die anderen werden eingefügt.
Ansonsten musst Du ein extra Script schreiben, dass in der DB prüft, ob der Eintrag schon da ist.
Da wird jede Query ausgeführt und die INSERTS, die nicht klappen, geben einen Fehler. Die anderen werden eingefügt.
Ansonsten musst Du ein extra Script schreiben, dass in der DB prüft, ob der Eintrag schon da ist.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Hallo,
vielen Dank fuer den Hinweis auf dieses Script.
Allerdings funktioniert es bei mir vom ACP aus nicht, sondern nur, wenn ich es "normal" im phpBB-root-Verzeichnis aufrufe.
Das entstehende db_update.php mit den SQL-Befehlen etc. habe ich anschliessend in das phpBB-root-Verzeichnis hinein kopiert und als Admin eingeloggt aufgerufen.
Ergebnis: Leerer Bildschirm, das Programm legt offenbar nicht mal los mit dem Updaten, obwohl meiner Meinung nach im db_update.php alles stimmt:
Gruss
testit
vielen Dank fuer den Hinweis auf dieses Script.
Allerdings funktioniert es bei mir vom ACP aus nicht, sondern nur, wenn ich es "normal" im phpBB-root-Verzeichnis aufrufe.
Das entstehende db_update.php mit den SQL-Befehlen etc. habe ich anschliessend in das phpBB-root-Verzeichnis hinein kopiert und als Admin eingeloggt aufgerufen.
Ergebnis: Leerer Bildschirm, das Programm legt offenbar nicht mal los mit dem Updaten, obwohl meiner Meinung nach im db_update.php alles stimmt:
Code: Alles auswählen
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
if( !$userdata['session_logged_in'] )
{
$header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
header($header_location . append_sid("login.$phpEx?redirect=db_update.$phpEx", true));
exit;
}
if( $userdata['user_level'] != ADMIN )
{
message_die(GENERAL_MESSAGE, 'You are not authorised to access this page');
}
$page_title = 'Updating the database';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
...
testit
- Mahony
- Ehemaliges Teammitglied
- Beiträge: 12327
- Registriert: 17.11.2005 22:33
- Wohnort: Ostfildern Kemnat
- Kontaktdaten:
Hallo
Ändere mal das hier
in das hier
und versuchs dann nochmal.
Grüße: Mahony
Ändere mal das hier
Code: Alles auswählen
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);Code: Alles auswählen
define('IN_PHPBB', true);
$phpbb_root_path = './';
include_once($phpbb_root_path . 'extension.inc');
include_once($phpbb_root_path . 'common.'.$phpEx);Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Ja, es ist ein eigenständiges Updatescript. Muss also direkt in der URL aufgerufen werden.
Hast Du denn versucht, es mit ein paar Befehlen zu starten, ob es überhaupt läuft?
Es kann sein, dass der Speicher nicht reicht, weil alles in ein Array geladen wird. Aber der Server keine Fehlermeldung ausgibt bzgl. des Speichers.
Hast Du denn versucht, es mit ein paar Befehlen zu starten, ob es überhaupt läuft?
Es kann sein, dass der Speicher nicht reicht, weil alles in ein Array geladen wird. Aber der Server keine Fehlermeldung ausgibt bzgl. des Speichers.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Hallo,
danke fuer Eure Tipps, aber es lag an etwas anderem:
Das Script liest aus der Topics-Tabelle die Titel aus, die teilweise auch Anführungszeichen enthalten, wenn die user diese im Titel verwendet hatten (sowohl " als auch ").
Der erzeugte db_update.php-Code escaped die QUOTES nicht, sondern übergibt die " direkt in die upzudatende Datenbank, die dann meckert.
db_generator.php sollte man folglich noch ein wenig überarbeiten, wenn man damit öfters arbeiten möchte.
Nette Grüsse
testit
danke fuer Eure Tipps, aber es lag an etwas anderem:
Das Script liest aus der Topics-Tabelle die Titel aus, die teilweise auch Anführungszeichen enthalten, wenn die user diese im Titel verwendet hatten (sowohl " als auch ").
Der erzeugte db_update.php-Code escaped die QUOTES nicht, sondern übergibt die " direkt in die upzudatende Datenbank, die dann meckert.
db_generator.php sollte man folglich noch ein wenig überarbeiten, wenn man damit öfters arbeiten möchte.
Nette Grüsse
testit