![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Jak ustawić rodzaj bindowanej zmiennej przez PDO w zależności od rodzaju tej zmiennej (sprawdzając za pomocą is_int() )? Napisałem taki kod, ale nie jestem pewny czy jest poprawny (niby jakoś działa):
Kod foreach($binds as $n => $bind){ if(is_int($bind)) $type=PDO::PARAM_INT; else $type=PDO::PARAM_STR; $statement->bindParam(($n+1), $bind, $type); } I mam problem z jednym zapytaniem: Kod $action=$pdo->sql('SELECT * FROM actions WHERE meczId=? AND time<? AND nr>?',array((int)$_GET['meczId'],(strtotime(date('Y-m-d H:i:s'))-strtotime($mecz['date'])),(int)$_GET['nr'])); Na początku myślałem, że traktuje te zmienne z $_GET jako string'i i nie może ich porównać, czy są mniejsze/większe. Ale nawet po przekonwertowaniu ich na int'y (dodanie (int) przed nimi) nie zadziałało. A np. takie zapytanie: Kod print_r($pdo->sql('SELECT * FROM players WHERE id>? AND blok<?',array(1,10))); Wyświetla mi poprawną tablicę. Wiecie może co tu spaprałem? Zadziałało, jak dałem zamiast bindParam - bindValue. Jaka jest różnica między tymi funkcjami? Po usunięciu tego ustawiania rodzaju zmiennej też działa (nawet po usunięciu (int) ). Jest to ustawianie zatem potrzebne/wymagane? -------------------- http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:34 |