Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][MySQL][PHP] wiele wywolan asynchronicznych kontrolera i jego procedury i dziwne wyniki w bazie
koszykarze
post 29.08.2018, 08:56:35
Post #1





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

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


Używam biblioteki uzywajacej jQuery (telerik) i mam przypadek w którym jeden po drugim wysylany jest asynchrobicznie ten sam request z innymi parametrami do kontrolera Symfony w którym wywoluję tę samą procedurę mysql robiaca zwykly insert jednego wiersza jednej tabeli.

Z testowymi danymi, tymi samymi, ta operacja za kazdym razem daje inne wyniki, tj zapis w bazie. Tzn jeśli ta operacja ma wywołać 3 razy żądanie do kontrolera i w sumie dodać 3 wiersze, to raz wstawi 3, raz 0, raz 2, 1. Bez żadnego sensu. I za każdym razem ten kontroler nie łapie żadnego exception związanego z bazą. Jest try w ktorym jest execute procedury.


  1. $em = $this->getDoctrine()->getManager()->getConnection();
  2. $query = $em->prepare("CALL document_add_user ( :document_id, :user_id)");
  3. try {
  4. $query->execute([
  5. ":document_id" => intval($request->get('document_id')),
  6. ":user_id" => intval($request->get('user_id')),
  7. ]);
  8. } catch (\Exception $e) {
  9. $msg = "MESSAGE: ".$e->getMessage();
  10. $response = new Response();
  11. $response->headers->set('Access-Control-Allow-Origin', $this->getParameter('ajax_allow_domain'));
  12. $response->send();
  13. return new JsonResponse($msg, 401);
  14. }
  15.  
  16. //$query->closeCursor();
  17.  
  18. $response = new Response();
  19. $response->headers->set('Access-Control-Allow-Origin', $this->getParameter('ajax_allow_domain'));
  20. $response->send();
  21.  
  22. return new JsonResponse("Dodano uzytkownika:.. ")
  23.  


Ten post edytował koszykarze 29.08.2018, 08:56:48
Go to the top of the page
+Quote Post
nospor
post 29.08.2018, 09:04:10
Post #2





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




I nawet jak do bazy wplynie 0 wpisow to jako response otrzymasz 3 razy tekst "Dodano uzytkownika... " ?

ps: czemu w ogole tworzysz procedury na tak banalne akcji jak dodanie banalnego rekordu do bazy?


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

"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
koszykarze
post 29.08.2018, 20:30:52
Post #3





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

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


Jestem teraz poza kodem, ale krótkie googlowanie nie znalazło odpowiedzi na pytanie jak sprawdzić czy procedura insertujaca skutecznie coś wstawila. Gdy tę procedurę uruchamiam w workbench z poprawnymi parametrami to widzę komunikat: 0 rows affected. Mimo ze wstawilo dane do tabeli. Więc ->execute() po skutecznym insercie tez chyba zwróci 0.

->lastInsertId ?
If($query) ?

Ten post edytował koszykarze 29.08.2018, 20:33:52
Go to the top of the page
+Quote Post
nospor
post 29.08.2018, 20:58:15
Post #4





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




王明 是 中国人。
王明 是 学生。
史密斯 是 美国人。
史密斯 是 王明 的 朋友。
史密斯 是 律师。


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

"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
koszykarze
post 29.08.2018, 21:09:42
Post #5





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

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


A ja dzisiaj na trzeźwo.
Go to the top of the page
+Quote Post
nospor
post 29.08.2018, 21:12:26
Post #6





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Ja tez. Ale skoro nie potrafisz odpowiedziec na moj, ktory napisalem do ciebie po polsku, to pomyslalem ze sprobuje po chinsku. Zadzialalo polowicznie - przynajmniej zauwazyles ze cos do ciebie napisalem


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

"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
koszykarze
post 29.08.2018, 21:16:35
Post #7





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

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


W twojej odpowiedzi odczytałem sugestię, że powinienem dodać warunek sprawdzajacy czy procedura dodała wiersz, bo kontroler w każdym wypadku zwróci mi pozytywny response.
Go to the top of the page
+Quote Post
nospor
post 29.08.2018, 21:17:36
Post #8





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Czyli moj polski to dla ciebie jak chinski...

Zadalem dwa proste pytania w moim poscie i chcialbym bys na nie odpowiedzial a nie doszukiwal sie ukrytych znakow


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

"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
koszykarze
post 29.08.2018, 21:19:08
Post #9





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

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


Cytat(nospor @ 29.08.2018, 10:04:10 ) *
I nawet jak do bazy wplynie 0 wpisow to jako response otrzymasz 3 razy tekst "Dodano uzytkownika... " ?

Haha dopiero teraz zauważyłem ze to jest pytanie. Jutro sprawdzę.
Go to the top of the page
+Quote Post
nospor
post 29.08.2018, 21:20:29
Post #10





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Na odpowiedz na drugie pytanie tez musze czekac do jutra? Tez juz nie pamietasz czemu tworzysz procedury?


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

"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
koszykarze
post 29.08.2018, 21:23:04
Post #11





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

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


W języku angielskim zawsze na początku pytania jest słowo wskazujące ze bedzie pytanie. Ma to sens.

Procedury? Taką dostalem sugestię z góry.

A jeśli chodzi o 1 pytanie. Tak, przypominam sobie ze ten kontroler zawsze zwracał "Dodano...".

Ten post edytował koszykarze 29.08.2018, 21:45:15
Go to the top of the page
+Quote Post
nospor
post 29.08.2018, 21:26:47
Post #12





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




W jezyku polskim na koncu zdania daje sie "?" ktore dosc mocno sugeruje, ze to pytanie....

Nie mogles wyperswadowac gorze ze to glupi pomysl? wiesz, programisci czasami tez maja cos do powiedzenia...


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

"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
koszykarze
post 29.08.2018, 21:40:07
Post #13





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

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


Cytat(nospor @ 29.08.2018, 22:26:47 ) *
W jezyku polskim na koncu zdania daje sie "?" ktore dosc mocno sugeruje, ze to pytanie....
ale gdy stoi po kilku znakach interpunkcyjnych a szczególnie po cudzyslowiu to mózg może to zignorować jako część cytatu. Mój mózg zignorowal.



Góra to programista i główny bazodanowiec. Ja takim nie perswaduje jesli nie jestem pewien na 100%.

Ten post edytował koszykarze 29.08.2018, 21:41:49
Go to the top of the page
+Quote Post
Pyton_000
post 30.08.2018, 07:48:00
Post #14





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Pokaż ciało tej procedury. No chyba że ona zawiera dziesiątki innych zapytań to wtedy ma to może i sens
Go to the top of the page
+Quote Post
nospor
post 30.08.2018, 11:05:57
Post #15





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
Góra to programista i główny bazodanowiec. Ja takim nie perswaduje jesli nie jestem pewien na 100%.

To moze chociaz zapytac tak z ciekawosci by wiedziec po co, dlaczego? Tak by sie czegos nauczyc a nie bez sensu walic w te klawiature? Sam chetnie sie dowiem co takiego zawiera ta procedura ze musi to byc wlasnie procedura


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

"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

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 Wersja Lo-Fi Aktualny czas: 18.04.2024 - 15:01