gordonek
18.12.2008, 15:16:13
Witam,
Mam problem z przełożeniem takiego zapytanie MySQL na PDO:
Kod
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$row = mysql_fetch_assoc($result);
$next = $row['id'];
}
Kombinuje jakoś z :
Kod
if ($row = $stmt->fetch(PDO::FETCH_ASSOC) > 0) {
$next = $row['id'];
}
ale to niestety nie działa.
Będę wdzięczny za pomoc.
Pozdrawiam
wrzasq
18.12.2008, 16:44:26
nie. ta metoda nie zwraca ilosci wierszy z SELECT (a jak widać potem jest uzyte mysql_fetch_*, ktore mowi, ze pobieramy rekordy), a jedynie dla zapytan typu UPDATE/INSERT/DELETE ilosc wierszy "dotknietych" przez to zapytanie.
masz dwie opcje - albo najpierw stworzyc zapytanie z COUNT(), albo zliczac w PHP ilosc wierszy. wtedy mozesz albo uzyc count( $stmt->fetchAll() ) (ale to raczej malo wydajne), albo najpierw wyswietlac wszystkie wiersze i w miedzyczasie je zliczac. lub jesli chcesz po prostu miec jeden wiersz, to robisz raz $stmt->fetch() i sprawdzasz, czy zwrocona wartosc to false.