• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[php/mysql]Translacja z mysql do PDO

VPS Starter Arubacloud
0 głosów
339 wizyt
pytanie zadane 15 czerwca 2015 w PHP przez mopatowicz Użytkownik (560 p.)

Pierwszy raz pisze stronę w PDO. Nie mam książki z zawartym PDO, więc jest ciężko. Prosiłbym o przetłumaczenie tego kodu:

$sql = mysql_query("SELECT * FROM xxx WHERE yyy = '$yyy'");
$wynik = mysql_num_rows($sql);

na kod PDO. 

1 odpowiedź

0 głosów
odpowiedź 15 czerwca 2015 przez Comandeer Guru (599,730 p.)
wybrane 15 czerwca 2015 przez mopatowicz
 
Najlepsza

W PDO zamiast tej funkcji należy zrobić zapytanie z COUNT().

SELECT COUNT(*) as ile FROM xxx WHERE yyy = 'zmienna'

 

komentarz 15 czerwca 2015 przez Boshi VIP (100,240 p.)
Count zdaje się jest przecież i w  starych funkcjach?  w końcu to sql nie mający dużo wspólnego z metodami go wywołującymi?

Tutaj raczej chodziło by o. $wynik= $uchwyt->rowCount() w pdo.

Chyba, że myśli się nam rozbiegły:)
komentarz 15 czerwca 2015 przez Comandeer Guru (599,730 p.)
Problem polega na tym, że faktycznie PDO::rowCount istnieje, ale nie działa dla SELECT, co napisano nawet w docsach: http://php.net/manual/en/pdostatement.rowcount.php#example-1016
komentarz 15 czerwca 2015 przez Boshi VIP (100,240 p.)
O, faktycznie, dzięki za link, gdzieś bodajże na SO widziałęm że ludzie często używają właśnie fetchColumn zamiast rowCount i nie mogłem zrozumieć powodu takie jdecyzji.
komentarz 15 czerwca 2015 przez mopatowicz Użytkownik (560 p.)

Okej, już rozumiem o co chodzi, ale narzucił mi się kolejny problem...

Wyświetla mi się:

Call to a member function fetchColumn() on a non-object in ...

podaje zmieniony kod:

$wynik = $db -> query("SELECT COUNT(*) FROM uzytkownicy WHERE user = '$user'");
if($wynik -> fetchColumn() > 0) { //Czy użytkownik istnieje
		$pole_user = 'Nazwa użytkownika już zajęta!';
}

Baza danych jest pusta i domyślam się że dlatgo taki komunikat.

komentarz 15 czerwca 2015 przez Comandeer Guru (599,730 p.)

Zobacz co jest w $wynik i czy baza nie rzuciła jakiegoś błędu http://php.net/manual/en/pdo.errorinfo.php

komentarz 15 czerwca 2015 przez mopatowicz Użytkownik (560 p.)
Dzięki, wszystko już działa :)

Podobne pytania

0 głosów
3 odpowiedzi 737 wizyt
+2 głosów
1 odpowiedź 287 wizyt
pytanie zadane 26 czerwca 2015 w PHP przez makoso Mądrala (7,380 p.)
+3 głosów
4 odpowiedzi 4,259 wizyt
pytanie zadane 10 kwietnia 2015 w PHP przez Hatter Gaduła (3,180 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...