php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.07.2006, 15:55  
Gast
 
Beiträge: n/a
Standard

ich bin mir nicht sicher, aber ich denke dazu sollte man die tabellen sperren, damit zwischen den queries nicht andere threads eine zeile einfügen und somit LAST_INSERT_ID ändern.
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.07.2006, 16:59  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi.

Jo, dann musst du wohl doch PHP hernehmen...

@"xardie":
Wozu locken? Die Zuordnung ist durch die ID gegeben. Da kann dir doch zwischenreinschreiben, wer will, ohne diese zu gefährden.

Basti
Basti ist offline  
Alt 06.07.2006, 18:23  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

mit einem hattest du Recht @Pro, es wäre Off-Topic geworden, mit dem Rest nicht du hast ne PM
Zergling-new ist offline  
Alt 08.07.2006, 22:45  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Basti
@"xardie":
Wozu locken? Die Zuordnung ist durch die ID gegeben. Da kann dir doch zwischenreinschreiben, wer will, ohne diese zu gefährden.
ich hab das bloß auf die mysql version mit LAST_INSERT_ID bezogen. wenn zwischen den beiden queries
Code:
INSERT INTO foo (auto,text) 
    VALUES(NULL,'text');              # generate ID by inserting NULL 
INSERT INTO foo2 (id,text) 
    VALUES(LAST_INSERT_ID(),'text');  # use ID in second table
ein weiterer thread einen INSERT in foo macht, sollte auch LAST_INSERT_ID auf den wert gesetzt werden, welche dann im ersten thread auch den neuen wert hat -> man macht den zweiten insert mit der falschen ID.

So genau kenne ich die abläufe in mysql/php jetzt nicht, wenn man die beiden INSERTS in einem query aufruf macht kann es gut sein dass es klappt. Aber an für sich ist das ist ein klassischer threading fehler.
 
Alt 09.07.2006, 10:55  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von xardie
ich hab das bloß auf die mysql version mit LAST_INSERT_ID bezogen. wenn zwischen den beiden queries
Code:
INSERT INTO foo (auto,text) 
    VALUES(NULL,'text');              # generate ID by inserting NULL 
INSERT INTO foo2 (id,text) 
    VALUES(LAST_INSERT_ID(),'text');  # use ID in second table
ein weiterer thread einen INSERT in foo macht, sollte auch LAST_INSERT_ID auf den wert gesetzt werden, welche dann im ersten thread auch den neuen wert hat -> man macht den zweiten insert mit der falschen ID.
Wenn eine andere Verbindung Daten in die Datenbank schreibt, bleibt die aktuelle Verbindung davon unberührt, da sich LAST_INSERT_ID() genau wie mysql_insert_id() lediglich auf die aktuelle Verbindung bezieht.
Wenn du aber davon ausgehst, dass beide INSERT-Queries mit der gleichen Verbindung vorgenommen werden, ist ein LOCK der Tabellen genauso überflüssig. Dabei musst du dann lediglich die ID des ersten Eintrages erst in einer Variablen zwischenspeichern, wie dies auch schon vorher beschrieben wurde.
xabbuh ist offline  
 


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
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
Update über zwei Tabellen tekknotrip Datenbanken 2 26.02.2007 16:25
Viele Tabellen oder viele Spalten?! thefaxx PHP Tipps 2006 2 01.10.2006 15:32
Volltext-Suche Problem - 2 verschiedene Tabellen Datenbanken 1 18.09.2006 16:32
Ausgabe der Verknüpften tabellen über php skript PHP Tipps 2006 4 07.02.2006 15:04
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
[Erledigt] abfrage mehrere tabellen PHP Tipps 2005-2 3 31.10.2005 21:57
MySQL Daten aus verknüpften Tabellen auslesen ? PHP Tipps 2005-2 2 27.06.2005 03:21
[Erledigt] DB-Design "CD-Shop" - Tabellen Datenbanken 2 13.05.2005 10:37
Quiz Tabellen wizzardxx Datenbanken 9 10.05.2005 11:24
[Erledigt] Selectanfrage an eine Datenbank,aber aus mehreren Tabellen Datenbanken 2 26.10.2004 07:23
[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
php id in zwei tabellen schreiben, php mehrere inserts mit gleicher id, mysql_insert_id bezogen auf tabelle

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:08 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.