Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie wykonuje się - od czasu do czasu
Forum PHP.pl > Forum > Bazy danych > MySQL
Adi32
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ć?
nospor
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ń.
Adi32
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...
nospor
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?
Adi32
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.