php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.11.2008, 08:11  
Benutzer
 
Registriert seit: 16.10.2008
Beiträge: 41
malungo befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Formulardaten in mehrere Tabellen verteilen

Hallo Zusammen!

Ich habe folgendes Problem:
Ich habe ein Formular in dem der User Daten eingeben kann.
Diese Eingaben will ich über mehrere Tabellen verteilen.
z.B. Usernamen/Passwort in Tabelle User; Sparte/Branche in eine andere Tabelle und als Referenz zur Usertabelle die USER_ID.

Hierzu verwende ich 2 INSERT-Statements welche nacheinander ausgeführt werden. (Wenn 1. fehlerfrei durchgeführt wurde, dann 2.).

Auf meinem lokalen Webserver funktioniert alles einwandfrei, aber kann es z.B. sein dass das 2. Insert Statement z.B. wg. Serverüberlastung nicht ausgeführt werden kann!? (auch wenns syntaktisch korrekt ist)

Das Ganze bereitet mir etwas Sorgen.

Das genannte Bsp. wär wohl ein klassisches BSP für Transaktionen.
Ich verwende allerdings die MYISAM Engine ...und will auch nicht davon weg (aus Performancengründen).
Oder ist es unumgänglich für diese 2 Tabellen die INNODB Engine zu verwenden?

Hab mir mal das phpBB-Forum angesehen..wenn ich mich nicht täusche verwenden die auch die MyISAM Engine und verteilen über mehrere Tabellen...

Welche Technik gewährleistet mir konsistente Daten?
Was würdet ihr mir empfehlen?

Vielen Dank!

Malungo
malungo ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.11.2008, 08:14  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Nee das wäre ja totaler Quatsch das man nicht 2 INSERT-Statements hintereinander ausführen darf. Wie sieht dein Code denn aus?
cycap ist offline   Mit Zitat antworten
Alt 06.11.2008, 10:49  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von malungo Beitrag anzeigen
Hierzu verwende ich 2 INSERT-Statements welche nacheinander ausgeführt werden. (Wenn 1. fehlerfrei durchgeführt wurde, dann 2.).

Auf meinem lokalen Webserver funktioniert alles einwandfrei, aber kann es z.B. sein dass das 2. Insert Statement z.B. wg. Serverüberlastung nicht ausgeführt werden kann!? (auch wenns syntaktisch korrekt ist)
Ja. Wenn der Server sich verabschiedet oder ähnliches, kann das schon passieren.
Zitat:
Oder ist es unumgänglich für diese 2 Tabellen die INNODB Engine zu verwenden?
[...]
Welche Technik gewährleistet mir konsistente Daten?
Was würdet ihr mir empfehlen?
Es kommt drauf an, wie wichtig die Daten sind. Wenn du gerade eine Online-Banking-Applikation schreibst, dann wirst du wohl um Transaktionen nicht herumkommen.
Bei einem Forum oder ähnlichem, finde ich, kann man mit dem minimalen Risiko leben, dass es hin und wieder Inkonsistente Daten gibt....


Du kannst dir dazu auch das entsprechende Kapitel im MySQL-Manual anschauen:
MySQL :: MySQL 5.1 Referenzhandbuch :: 1.9.5.3 Transaktionen
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 06.11.2008, 10:57  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Achso ich glaub ich hab dich falsch verstanden. Du hast also kein Problem sondern du sorgst dich nur darum was passieren könnte?

Aber was hindert dich daran zu prüfen ob die Inserts geklappt haben? Wenns nur 2 sind?
cycap ist offline   Mit Zitat antworten
Alt 06.11.2008, 11:02  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von cycap Beitrag anzeigen
Aber was hindert dich daran zu prüfen ob die Inserts geklappt haben? Wenns nur 2 sind?
Wenn genau in dem Moment zwischen erstem und zweitem Query, die Putzfrau den Stecker zieht, dann nützt dir das alles nichts
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 06.11.2008, 11:38  
Benutzer
 
Registriert seit: 16.10.2008
Beiträge: 41
malungo befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cycap Beitrag anzeigen
Achso ich glaub ich hab dich falsch verstanden. Du hast also kein Problem sondern du sorgst dich nur darum was passieren könnte?

Aber was hindert dich daran zu prüfen ob die Inserts geklappt haben? Wenns nur 2 sind?
genau richtig...ich habe kein Problem.
Nur ich mach mir Sorgen dass evtl. in die Usertabelle der User eingetragen wurde, aber in den Tabellen in denen die Zusatzinfos zum User gespeichert werden die Daten nicht ankommen.

Normalerweise dürfte das ja nicht vorkommen, nur weiß ich nicht wie so ein System reagiert wenn es total überlastet ist weil es z.B. mit der Useranzahl nicht zurechtkommt o.ä.

aktuell siehts so aus:
PHP-Code:
$fehler false;

/* 1. Insert */
$sql "INSERT INTO ...";

if (!
mysql_query($sql)) {
$fehler true;
logError($sql);
}


if (
$fehler==false) {
/* 2. Insert */
$sql "INSERT INTO ...";

if (!
mysql_query($sql)) {
$fehler true;
logError($sql);
}

usw.

eigentlich müsste ich - falls der 2. Fall schief läuft den 1. Eintrag löschen...wenn beim 3. was schief läuft den 2. u. 1.
Oder haltet ihr das für unnötig?

Es geht hier um eine Benutzerregistrierung für einen Onlineshop.

Was passiert denn wenn ein Server total überlastet ist? Gehen so Abfragen evtl. verloren, oder wird das komplette Skript abgearbeitet, wenn es an den Server geschickt wird (wenn der User auf Absenden geklickt hat)...und die Ganze Aktion dauert nur etwas.

...dass die Putzfrau bei z.B. 1&1 einen Stecker zieht hoffe ich mal nicht
malungo ist offline   Mit Zitat antworten
Alt 06.11.2008, 11:47  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Nun du könntest ja wie folgt vorgehen:

- INSERT in eine Tabelle "temp" mit allen Daten
- INSERT 1
- INSERT 2
- Löschen aus Tabelle "temp"

So könntest du prüfen ob es irgendwo ein Problem gab und die Daten gehen nicht verloren. Sobald ein Datensatz in "temp" übrig bleibt, dann wurde der Stecker gezogen

Allerdings bei einer Registrierung für einen Onlineshop halte ich das nicht unbedingt für notwendig.
cycap ist offline   Mit Zitat antworten
Alt 06.11.2008, 11:59  
Benutzer
 
Registriert seit: 16.10.2008
Beiträge: 41
malungo befindet sich auf einem aufstrebenden Ast
Standard

ok! Vielen Danke für Eure Anregungen!
malungo ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
in einer abfrage ermitteln ob mehrere tabellen existieren? litterauspirna Datenbanken 7 28.10.2008 19:33
[Erledigt] Limit auf Ergebnissumme mehrerer Tabellen Frank Datenbanken 8 02.09.2008 11:33
Tabellen für Vokabeltrainer anlegen... anonym01 PHP Tipps 2008 9 03.03.2008 21:18
PHP Array in MYSQL Tabellen schreiben Matt Datenbanken 1 26.02.2008 19:43
5 tabellen miteinander verknüpfen. miwo Datenbanken 2 22.09.2007 11:17
abfrage über mehrere tabellen mit einer bedingung DarkThunder PHP Tipps 2007 6 15.04.2007 17:13
tabellen verknüpfen philips Datenbanken 26 06.05.2006 11:15
Join-Abfrage über mehrere Tabellen sinai Datenbanken 3 04.02.2006 13:05
einträge aus 2 tabellen sortieren Tschuu Datenbanken 11 20.12.2005 08:21
Abfrage mehrerer Tabellen per PHP (Code vereinfachen) PHP Tipps 2007 4 18.12.2005 12:34
[Erledigt] abfrage mehrere tabellen PHP Tipps 2005-2 3 31.10.2005 21:57
[Erledigt] DB-Design "CD-Shop" - Tabellen Datenbanken 2 13.05.2005 10:37
[Erledigt] Selectanfrage an eine Datenbank,aber aus mehreren Tabellen Datenbanken 2 26.10.2004 07:23
[Erledigt] Formulardaten sammeln, und in Datenbank verteilen. PHP Tipps 2004 1 14.08.2004 20:35
[Erledigt] fulltext suche priorität von tabellen setzen Datenbanken 1 09.08.2004 15:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
formular mehrere tabellen, formulardaten in mehrere tabellen eintragen, 1 formular 2 tabellen, sql insert mehrere tabellen, eintrag in mehrere tabellen, \mit einem formular in zwei tabellen eintragen\, form mehrere tabellen, datenbank formular serverüberlastung, formular über mehrere tabellen, formulardaten in 2 tabellen, php formular in mehrere tabellen eintragen, daten auf tabellen verteilen, warum werden daten auf mehrere tabellen verteilen, 2 tabellen in 1 formular, 2 tabellen in einem formular, daten auf mehrere tabellen verteilen, formular 2 tabellen, mysql datenbanken verteilen, formular html zwei tabelle, datenbank mehrere tabellen erstellen php sql

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:15 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum