Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie wykonuje się - od czasu do czasu, użycie START TRANSACTION
Adi32
post
Post #1





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Witajcie,

mam dziwny problem.

Wprowadziłem do skryptu który aktualnie produkuje transakcje, a jako że do relacji z bazą danych używam klasy, przerobiłem ją trochę. Ale do rzeczy.

Tak wyglądają u mnie zapytanie na transakcjach:


  1. $db->transaction_on();
  2. $db->query("INSERT INTO user SET login='asd', pass = 'dsa';");
  3. $db->query("INSERT INTO user SET login='asd2', pass = 'dsa2';");
  4. $db->query("INSERT INTO user SET login='asd3', pass = 'dsa3';");
  5. $db->commit();



Dzięki temu, zapytanie które trafia do SQLa wygląda tak:

  1. START TRANSACTION;
  2. INSERT INTO user SET login='asd', pass = 'dsa';
  3. INSERT INTO user SET login='asd2', pass = 'dsa2';
  4. INSERT INTO user SET login='asd3', pass = 'dsa3';
  5. COMMIT;


I wykonuje się w taki sposób:

  1. $multi = new mysqli($this->host,$this->user,$this->pass,$this->db);
  2. $this->mysql_result = $multi->multi_query( $this->mysql_query );


I cały problem polega na tym, że gdy korzystam z transakcji prawie nigdy nie wykonuje się pierwsze zapytanie po "START TRANSACTION".
Gdy to samo zapytanie wkleje w konsole SQL w PhpMyAdminie wszystko działa cacy.

Ktoś wie o co może chodzić?

Ten post edytował Adi32 25.11.2011, 18:34:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Adi32
post
Post #2





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 25.11.2011, 19:19:12 ) *
A to już z czystej ciekawości zapytam jeśli można:
O jakie kwestie chodzi?


1. Zaczęło się od tego, że myślałem, że aby używać zmiennych w SQLu - zapytanie musi iść jako całość. Co się potem okazało to bez znaczenia.
2. Często zanim zapytanie się wykona jest generowane, czasami generuje się sporsza ilość zapytań i wole nagromadzić je pętlą i wykonać jako jedno niż odpalać je w nieokreślonej pętli.
3. Kwestie czysto edukacyjne.

Wiem, że kwestie nie są przekonujące i pewnie masz rację, lepiej to puścić pojedynczymi zapytaniami ale i tak chciałbym wiedzieć o co chodzi.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 14:45