Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Tranzactii in PostgreSQL
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Alte baze de date
Subiectul anterior :: Subiectul următor  
Autor Mesaj
pepys



Data înscrierii: 05/Mai/2005
Mesaje: 48

Trimis: Vin Iun 16, 2006 3:09 pm    Titlul subiectului: Tranzactii in PostgreSQL  

Vreau sa folosesc niste tranzactii la anumite comenzi. Ceva de genul:

Cod: BEGIN
UPDATE facturi SET valoare=540.46 WHERE id = '77'
COMMIT;

Legat de asta as avea 2 intrebari:

1. Ce functii de verificare a rezultatului as putea folosi aici, inainte de a face COMMIT? Asta pentru ca daca rezultatul e negativ, sa pot face ROLLBACK?

2. In fisierele PHP de obicei am ceva de genul

Cod: $query = "UPDATE tebel SET nume=....";

Cum pot sa fac acum sa includ mai multe operatiuni de executat? Tre sa fac ceva de genul urmator?

Cod: $query = "BEGIN";
$query = "UPDATE facturi SET valoare=540.46 WHERE id = '77'";
$query = "COMMIT";

Sau cum altfel ar trebui sa fac?

Multumesc..[/code]
Sus  
aurelian



Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti

Trimis: Vin Iun 16, 2006 7:20 pm    Titlul subiectului:  

tranzactii cu Creole (vezi exemplu de jos).
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Vin Iun 16, 2006 8:15 pm    Titlul subiectului:  

Nu stiu daca linia data e doar "exemplificativa", dar sa ma bati si nu pricep rolul unei tranzactii ce contine o singura instructiune (atomica).

Ca sa vezi daca e cazu' de rollback trebuie sa verifici rezultatul fiecarui query... ar tb. sa ai ceva de genul:
pg_query($conn, "BEGIN") or die('....');
$result = pg_query($conn, "query 1")
it (!$result) { //iesire... alte alea }

$result = pg_query($conn, "query 2")
it (!$result) { pg_query("ROLLBACK"); }

pg_query("COMMIT");

cam asa ceva... (nu prea fol. postgresql asa ca e posibil sa fi dat-o pe alaturi)
Sus  
pepys



Data înscrierii: 05/Mai/2005
Mesaje: 48

Trimis: Lun Iun 19, 2006 4:53 pm    Titlul subiectului:  

Am gasit niste posibile variabile la functie pg_result_status():

PGSQL_EMPTY_QUERY
PGSQL_COMMAND_OK
PGSQL_TUPLES_OK
PGSQL_COPY_OUT
PGSQL_COPY_IN
PGSQL_BAD_RESPONSE
PGSQL_NONFATAL_ERROR
PGSQL_FATAL_ERROR
PGSQL_STATUS_LONG

Stie cineva cum se folosesc?

Nu am reusit totusi sa testez in vre-un fel rezultatul unui query.. :) Mai are cineva idei?
Sus  
pepys



Data înscrierii: 05/Mai/2005
Mesaje: 48

Trimis: Mar Iun 20, 2006 10:45 am    Titlul subiectului:  

carco a scris: Nu stiu daca linia data e doar "exemplificativa", dar sa ma bati si nu pricep rolul unei tranzactii ce contine o singura instructiune (atomica).

Ca sa vezi daca e cazu' de rollback trebuie sa verifici rezultatul fiecarui query... ar tb. sa ai ceva de genul:
pg_query($conn, "BEGIN") or die('....');
$result = pg_query($conn, "query 1")
it (!$result) { //iesire... alte alea }

$result = pg_query($conn, "query 2")
it (!$result) { pg_query("ROLLBACK"); }

pg_query("COMMIT");

cam asa ceva... (nu prea fol. postgresql asa ca e posibil sa fi dat-o pe alaturi)

Poti sa-mi dai niste exemple mai concrete.. Ce anume pot sa verific din rezultatul unui query? Ce functii sunt pentru asta? 10x!
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Alte baze de date
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community