Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zwracanie id utworzonego rekordu.
Salur
post
Post #1





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Witam, jak mogę zwrócić id utworzonego rekordu? Skrypt tworzy klan i zapisuje go do tabeli klan a nastepnie chce zaktualizowac w kolumnie clan_id w tabeli player własnie to id stworzonego klanu. Co robię źle?

PS: Czy mogę te zapytania dodatkowo zoptymalizowac?

  1. // sprawdzanie czy klan istnieje/
  2.  
  3. $x = $db->select_single('SELECT * FROM klan WHERE name = '.$_POST['nameKlan'].'');
  4.  
  5. if($x > 0){
  6.  
  7. echo 'Klan z taką nazwą już istnieje!';
  8.  
  9. } else {
  10.  
  11. // dodanie klanu do bazy //
  12. $db->query("INSERT INTO klan (name,owner_id,osob,skarbiec,skarbiec_gold,punkty) VALUES ('$nameKlan','".$player['id']."', '1', '0','10','0')");
  13.  
  14.  
  15. // zabranie uzytkownikowi kasy za załozenie klanu//
  16. $db->query("UPDATE player SET gold = (gold - 1000) WHERE id = '".$player['id']."'");
  17.  
  18.  
  19. !!// i teraz TU muszę dodac to id które jest w nowo stworzonym klanie//!!
  20.  
  21. $db->query("UPDATE player SET clan_id = 'idNowegoKlanu' WHERE id = '".$player['id']."'");
  22.  
  23. echo 'Założyłeś klan o nazwie: <b>'.$nameKlan.'</b>
  24.  
  25. }
  26.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Skie
post
Post #2





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


Nie ma sensu, by łączyć te zapytania (SELECT, UPDATE, INSERT) w jedno skomplikowane wielkie coś korzystając z samego PDO. Traci się wtedy dobrodziejstwa jakie wynikają z PHP cache i SQL cache, które znacznie poprawią wydajność niż połączenie paru zapytań w jednego frankensteina. Jeśli zatem należy dawać jakieś rady odnośnie implementacji - to dodanie PHP cache - żadnego łączenia.
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 01:29