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


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A czemu jak normalny człowiek nie wykonujesz każdego zapytania oddzielnie? Nawet nie wiedziałem, że można mysqli pozwala na wykonywanie multi zapytań.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Adi32
post
Post #3





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

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


Zależało mi w pewnym momencie na wykonywaniu multi zapytań ze względu na kilka różnych kwestii i nie chce teraz z tego rezygnować z powodu TRANSACTION. Działać ma wszystko.
Najdziwniejsze jest to, że od czasu do czasu zapytanie wykona się w całości poprawnie.

Może mi ktoś przy okazji powiedzieć, ja są wykonywane zapytania w phpMyAdminie?

W sumie to miałbym prośbę.

Mógłby ktoś przetestować to u siebie? Może to jest błąd mysqli...


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Zależało mi w pewnym momencie na wykonywaniu multi zapytań ze względu na kilka różnych kwestii
A to już z czystej ciekawości zapytam jeśli można:
O jakie kwestie chodzi?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Adi32
post
Post #5





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.


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 05:52