Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] UPDATE w PDO
Kerth
post
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


Witam,
pytałem się już o to na innym forum, niestety nikt nie był w stanie mi pomóc. Chodzi o zapytanie UPDATE, które wykonuję w PDO. Może na początek kod:

  1. $kasa_start = 1000;
  2. $register_kasa_start = $db->prepare("UPDATE `gracze` SET `kasa`= :kasa_start WHERE `nick` = :nick");
  3. $register_kasa_start->bindValue(":kasa_start", $kasa_start, PDO::PARAM_INT);
  4. $register_kasa_start->bindValue(":nick", $nick, PDO::PARAM_STR);
  5. if(!$register_kasa_start->execute()){
  6. throw new Exception("Wystąpił błąd podczas dodawania kasy startowej!");
  7. }
  8. $register_kasa_start->execute();


Zapytanie się nie wykonuje. Do bazy danych w kolumnie `kasa` dla danego gracza nie jest dodawana tzw. kasa w postaci 1000.

Polecenie:
  1. var_dump($register_kasa_start->queryString);

Zwraca mi:

  1. string(60) "UPDATE `gracze` SET `kasa`= :kasa_start WHERE `nick` = :nick"

Z tego wynika, że zapytanie jest dobre. Wie ktoś co z tym zrobić i jak to naprawić?
Go to the top of the page
+Quote Post
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


2x robisz execute, bo w liniach 5 i 8 to raz.
Dwa, sprawdz bledy wyświetlajac normalne sqlowe warningi a nie ludzkie info
  1. $kasa_start = 1000;
  2. var_dump($nick);
  3. $register_kasa_start = $db->prepare("UPDATE `gracze` SET `kasa`= :kasa_start WHERE `nick` = :nick");
  4. $register_kasa_start->bindValue(":kasa_start", $kasa_start, PDO::PARAM_INT);
  5. $register_kasa_start->bindValue(":nick", $nick, PDO::PARAM_STR);
  6. if(!$register_kasa_start->execute()){
  7. print_r($register_kasa_start->errorInfo());
  8. }

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





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


  1. string(5) "Kerth"


Błędu nie ma żadnego. Trochę dziwne to "zjawisko", bo wszystkie inne zapytania wykonują się poprawnie tylko te z UPDATE kuleją.
Go to the top of the page
+Quote Post
Turson
post
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Polecam upewnić się jeszcze 100x czy masz tam wiersz z takim nickiem smile.gif
Go to the top of the page
+Quote Post
Kerth
post
Post #5





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


Jest taki nick na 100 %.
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #6





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Coś mi się Zdaje że chyba ktoś miał kiedyś podobny problem, przyczyna leżała chyba w tym że przed WHERE nie dodawało...
Spróbuj dla testu tak:

  1. UPDATE `gracze` SET `kasa`=1000 WHERE `nick` = :nick


lub właduj zmienną w zapytanie w miejsce 1000. (ale tylko dla testu, czy działa).

Ten post edytował ZaXaZ 18.07.2014, 16:23:06


--------------------
Go to the top of the page
+Quote Post
Kerth
post
Post #7





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


Też nie działa. Ciągle jest tak samo. Dla mnie to jest nowa sytuacja, bo kompletnie nie wiem jak się za to zabrać i jak szukać podobnych problemów z tym zapytaniem.
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Opakuj całość w try/catch, wyświetl sobie treść ewentualnego wyjątku, włącz raportowanie błędów. Albo przejrzyj logi serwera.


--------------------
Go to the top of the page
+Quote Post
irmidjusz
post
Post #9





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


i upewnij się, że łączysz się z odpowiednią bazą... tongue.gif no i czy przypadkiem nie jest to kwestia transakcji


--------------------
there is much to be learned
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: 22.08.2025 - 05:09