Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PDO] Ustawienie rodzaju bindParam w zależności od rodzaju zmiennej
Apocalyptiq
post 23.10.2008, 16:03:52
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

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


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)
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 09:34