Simon: get_lock, release_lock funktioniert nicht richtig

Beitrag lesen

Zum anderen musst du auch eine transaktionsfähige Storage Engine für die betroffene(n) Tabelle(n) verwenden. MyISAM ist keine, InnoDB ist eine.

Das hat mir schon geholfen und nun funktioniert es soweit mit der transaktion.
Macht denn dann solch eine Transaktion sinn?

  
try {  
  $db->beginTransaction();  
  $stmt = $db->prepare("SELECT data FROM lockbit WHERE user_id = 1");  
  $stmt->execute();  
  $row = $stmt->fetch(PDO::FETCH_ASSOC);  
  if(!$row) {  
    $stmt = $db->prepare("INSERT INTO lockbit (user_id, locked) VALUES (?, ?)");  
    $stmt->execute(array(1, 1));  
  }  
  $db->commit();  
} catch(PDOException $e) {  
  $db->rollBack();  
  die($e->getMessage());  
}  

Wird dir if abfrage etc korrekt durchgeführt?
Kann ich das GET_LOCK() einfach mit der Transaktion ersetzen und schon werden doppelte Ausführungen zur selben Zeit vermieden?

Was geschieht, wenn ein Benutzer 2 Transaktionen startet?
Wird gewartet bis die eine Transaktion durchgeführt wurde?