Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][MySQL][PHP]PDO sprawdzenie czy rekord istnieje
Forum PHP.pl > Forum > Przedszkole
breadi
Witam, mam poniższy kod, który odbiera dane z formularza, sprawdza czy w tabeli istnieje dany "id", jeżeli tak to atkualizuje dane w bazie pod danym "id". Jeśli nie ma takiego "id", to pojawia się informacja że dany "id" nie istnieje w bazie.. Czy ktoś może mi pomóc jak ten kod przerobić z 'mysql' na 'pdo'?
  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. $akcja = $_GET['akcja'];
  4. if ($akcja == wykonaj)
  5. {
  6. include ("polaczenie.php");
  7. $id = substr(addslashes($_POST['id']),0,3);
  8. if(mysql_num_rows(mysql_query("SELECT id FROM tabela WHERE id='$id'"))>0)
  9. {
  10.  
  11.  
  12. $aaa = substr(addslashes($_POST['aaa']),0,32);
  13. $bbb = substr($_POST['bbb'],0,320);
  14. $ccc = substr($_POST['ccc'],0,32);
  15. $ddd = substr($_POST['ddd'],0,5000);
  16. $dodano = date('d-m-Y');
  17. $y = substr(addslashes($_POST['y']),0,4);
  18. $m = substr(addslashes($_POST['m']),0,2);
  19. $d = substr(addslashes($_POST['d']),0,2);
  20. $id = substr(addslashes($_POST['id']),0,3);
  21.  
  22. if (mysql_query("SELECT * FROM `tabela` WHERE id='$id'"))
  23. {mysql_query("UPDATE `tabela` SET aaa='$aaa', bbb='$bbb', ccc='$ccc', ddd='$ddd', dodano='$dodano', y='$y', m='$m', d='$d' WHERE id='$id'") or die("Nie mogłem Cie zarejestrować!");
  24. echo header("Location: /administracja.php");
  25. echo '<br><span style="color: green; font-weight: bold; font-size: 30px;">zaktualizowano</span><br>';}
  26.  
  27.  
  28. }
  29. else
  30. {
  31. echo 'Rekord o podanym id nie istnieje, sprawdź nr i <a href="administracja.php">spróbuj ponownie<a/>';
  32. }
  33. }
  34. ?>
  35.  


Moje próby:
  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. $akcja = $_GET['akcja'];
  4. if ($akcja == wykonaj)
  5. {
  6. $pdo = new PDO('mysql:host=localhost;dbname=base', 'root', 'password');
  7. $id = substr(addslashes($_POST['id']),0,3);
  8. if(mysql_num_rows($pdo->query("SELECT id FROM tabela WHERE id='$id'"))>0)
  9. {
  10.  
  11.  
  12. $aaa = substr(addslashes($_POST['aaa']),0,32);
  13. $bbb = substr($_POST['bbb'],0,320);
  14. $ccc = substr($_POST['ccc'],0,32);
  15. $ddd = substr($_POST['ddd'],0,5000);
  16. $dodano = date('d-m-Y');
  17. $y = substr(addslashes($_POST['y']),0,4);
  18. $m = substr(addslashes($_POST['m']),0,2);
  19. $d = substr(addslashes($_POST['d']),0,2);
  20. $id = substr(addslashes($_POST['id']),0,3);
  21.  
  22. if ($pdo->query("SELECT * FROM `tabela` WHERE id='$id'"))
  23. {$pdo->query("UPDATE `tabela` SET aaa='$aaa', bbb='$bbb', ccc='$ccc', ddd='$ddd', dodano='$dodano', y='$y', m='$m', d='$d' WHERE id='$id'") or die("Nie mogłem Cie zarejestrować!");
  24. echo header("Location: /administracja.php");
  25. echo '<br><span style="color: green; font-weight: bold; font-size: 30px;">zaktualizowano</span><br>';}
  26.  
  27.  
  28. }
  29. else
  30. {
  31. echo 'Rekord o podanym id nie istnieje, sprawdź nr i <a href="administracja.php">spróbuj ponownie<a/>';
  32. }
  33. }
  34. ?>
  35.  


Konkretnie nie mam pojęcia jak to zamienić, żeby zadziałało:
  1. if(mysql_num_rows($pdo->query("SELECT id FROM tabela WHERE id='$id'"))>0)


Z góry dziękuję za okazaną pomoc.
IProSoft
  1. if( $pdo->query("SELECT count(*) FROM tabela WHERE id='".$id."'")->fetchColumn() > 0 )
breadi
Dziękuję bardzo, próbowałem w ten sposób, ale bez opcji 'Count'.
Pozdrawiam
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.