Autor Zpráva
houbín
Profil
Zdravím,

vytvořil jsem si třídu, do které se vloží pole obsahující všechny sql dotazy, které se buď vykonají všechny, nebo žádné.

class Db extends PDO {
  ...
  ...
    public function transaction (array $statements){
        $this->beginTransaction();
        try {
            foreach ($statements as $sql){
                $this->query($sql);
            }
                
            $this->commit();
            return true;
        } 
        catch (PDOException $e) {
            $this->rollBack();
            alert('Formulář se nepodařilo uložit.',$e);
        }
    }

Bohužel se vždy vykoná jen poslední sql dotaz z pole.
rafej
Profil
A jak kontroluješ výsledek? Opravdu se data nezměnila nebo si to jen myslíš podle toho, co vrací ta funkce?
houbín
Profil
Omlouvám se, funkce funguje, měl jsem celou dobu otevřenou jen kopii souboru v jiné složce. Takže jsem testoval něco jiného. A to jsem si nad tím lámal hlavu strašně dlouho!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0