php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben || php-forumjetzt anmelden
 

SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-07-2006, 19:43
akkie
 Newbie
Links : Onlinestatus : akkie ist offline
Registriert seit: Jan 2003
Beiträge: 34
akkie ist zur Zeit noch ein unbeschriebenes Blatt
Standard Transaktion mit Select auf MyISAM Tabelle

Hallo

Ich würde gern eine Transaktion mit einem Select auf eine MyISAM Tabelle erstellen. Ist das so möglich?

Mfg Akkie
Mit Zitat antworten
  #2 (permalink)  
Alt 19-07-2006, 00:25
aimbot
 PHP Junior
Links : Onlinestatus : aimbot ist offline
Registriert seit: Feb 2004
Ort: Lahr - Germany
Beiträge: 779
aimbot ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. kenne ich transaktionen nur im zusammenhang mit ändernden queries

2. transaktionen sind imho innodb tabs vorbehalten
__________________
MfG
aim
Lies mich jetzt!
- OT-Tags-Liebhaber und BB-Code-Einrücker -
Mit Zitat antworten
  #3 (permalink)  
Alt 19-07-2006, 09:47
akkie
 Newbie
Links : Onlinestatus : akkie ist offline
Registriert seit: Jan 2003
Beiträge: 34
akkie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry hab mich falsch ausgedrückt.

In der Transaktion befinden sich 2 Queries.
Ein Select und eine Update.

Die Tabelle auf die ich den Select mache ist eine MyISAM-Tabelle.
Die Update Tabelle ist natürlich eine InnoDB.

Mfg Akkie
Mit Zitat antworten
  #4 (permalink)  
Alt 19-07-2006, 12:06
aimbot
 PHP Junior
Links : Onlinestatus : aimbot ist offline
Registriert seit: Feb 2004
Ort: Lahr - Germany
Beiträge: 779
aimbot ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sollte normalerweise funktionieren, da die selektierte tabelle ja in keinem fall geändert wird.

was genau willst du denn machen?
__________________
MfG
aim
Lies mich jetzt!
- OT-Tags-Liebhaber und BB-Code-Einrücker -
Mit Zitat antworten
  #5 (permalink)  
Alt 19-07-2006, 18:47
akkie
 Newbie
Links : Onlinestatus : akkie ist offline
Registriert seit: Jan 2003
Beiträge: 34
akkie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi

Die Select - Abfrage ist ein Join auf eine Usertabelle und mehreren Queue-Tabellen die das Benutzerprofil zur Freigebe zwischenspeichern.

Die Update - Tabellen sind die Queue-Tabellen.

Beim Select lasse ich mir einen Benutzer zurückgeben der ein Profil in der Queue hat und von keinem Mitarbeiter bearbeitet wird.
Beim Update setzte ich einen Mitarbeiter für diesen User. Ich reserviere sozusagen den User für den Mitarbeiter.

Mfg Akkie
Mit Zitat antworten
  #6 (permalink)  
Alt 20-07-2006, 10:37
aimbot
 PHP Junior
Links : Onlinestatus : aimbot ist offline
Registriert seit: Feb 2004
Ort: Lahr - Germany
Beiträge: 779
aimbot ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Und wozu brauchst du in diesem fall eine ta?
__________________
MfG
aim
Lies mich jetzt!
- OT-Tags-Liebhaber und BB-Code-Einrücker -
Mit Zitat antworten
  #7 (permalink)  
Alt 20-07-2006, 12:08
akkie
 Newbie
Links : Onlinestatus : akkie ist offline
Registriert seit: Jan 2003
Beiträge: 34
akkie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi

Wenn mehrere Mitarbeiter zur gleichen Zeit eine Anfrage machen könnte es passieren das sie beim Select den gleichen Benutzer bekommen. Und wenn ich es richtig verstanden habe wird bei einer Transaktion auf die Tabelle ein READ-Lock gesetzt.

Mfg Akkie
Mit Zitat antworten
  #8 (permalink)  
Alt 20-07-2006, 17:49
aimbot
 PHP Junior
Links : Onlinestatus : aimbot ist offline
Registriert seit: Feb 2004
Ort: Lahr - Germany
Beiträge: 779
aimbot ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja da liegst du richtig, aber ich glaube du verstehst den sinn von einem read lock nicht. ein read lock verhindert lediglich, dass der datensatz verändert bzw. gelöscht wird. wenn du möchtest, dass die datensätze erst garnicht angezeigt werden solltest du select for update benutzen:

siehe auch hier
__________________
MfG
aim
Lies mich jetzt!
- OT-Tags-Liebhaber und BB-Code-Einrücker -
Mit Zitat antworten
  #9 (permalink)  
Alt 20-07-2006, 21:41
akkie
 Newbie
Links : Onlinestatus : akkie ist offline
Registriert seit: Jan 2003
Beiträge: 34
akkie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi

Das ganze macht mir noch ein bissel Probleme. Vielleicht kannst du mir ja helfen?

Ich weiß jetzt nicht ganz wie ich es machen soll.
Kommt die ganze sache jetzt trotzdem in eine Transaktion?

Wenn ich es ohne mache bekomme ich einen Fehler:
Commands out of sync; you can't run this command now

Mache ich es mit klappt die Transaktion. Nur der Query der danach kommt um die reservierten Einträge auszulesen scheitert dann mit einem MySQL server has gone away.

Code:
START TRANSACTION;
SELECT @vuserId:=`userId` FROM `user` FOR UPDATE;
UPDATE `queue` SET `editorId` = 1 WHERE `userId` = @vuserId;
COMMIT;
Das ganze schicke ich mit mysqli_multi_query an die Datenbank.

Danach kommt noch eine SELECT
Code:
SELECT `data1`, `data2` FROM `queue` WHERE `editorId` = 1
Den schicke ich normal mit mysqli_query

Mfg Akkie

Geändert von akkie (21-07-2006 um 09:19 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 21-07-2006, 10:08
akkie
 Newbie
Links : Onlinestatus : akkie ist offline
Registriert seit: Jan 2003
Beiträge: 34
akkie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi

Ich habe noch ein bissel rumprobiert und jetzt funktioniert es.

Ich Schicke die Queries jetzt einzeln an den Server und nutze die mysqli Methoden autocommit und commit.

Danke für deine Hilfe.

Mfg Akkie
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

OnPremise versus Cloud - das richtige System finden
Wir beleuchten in diesem Artikel, die Vor- und Nachteile für Cloud oder OnPremise Systemen. Und warum es definitiv Zeit wird in die Cloud zu wechseln.

09.05.2022 | julia_mjr

Warum Texterstellung mit künstlicher Intelligenz richtig gut ist
Warum Texterstellung mit künstlicher Intelligenz richtig gut istKünstliche Intelligenz ist dabei, die Welt zu erobern. Die größten Unternehmen entwickeln Systeme, die einen Text für Sie schreiben können. Und sie machen das sehr gut.

05.01.2022 | Berni


 

Aktuelle PHP Scripte

phpBasics Counter

Der Counter arbeitet mit einer klassischen einstellbaren IP-Reloadsperre. Er zählt die Besucher, die Seitenaufrufe und ermittelt auch die aktuellen Onlineuser. Zur Datenspeicherung wird eine MySQL-Datenbank genutzt. Der Counter überprüft seine Instal

09.09.2022 numaek | Kategorie: PHP/ Counter
MyPHPlib-Bibliotheksverwaltung

MyPHPlib ist eine Scriptsammlung, mit der die Bibliotheksverwaltung incl. Ausleihe und Recherche gelingt. Die Scriptsammlung wird seit Mitte 2005 entwickelt und ist besonders an den Bedürfnissen von Schulen angepasst.

11.08.2022 RobertG | Kategorie: PHP/ Management
responsive vertikales Menu

Diese Menu basiert auf php, jQuery, css und ajax. Wer sein Menu mit nested sets vertikal realisieren will, findet darin eine gute Lösung.

11.08.2022 COVISIONMEDIA | Kategorie: JAVASCRIPT/ Navigation
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:09 Uhr.