Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Zapytania z warunkiem. Czy używać metody quoteInto?
Forum PHP.pl > Forum > PHP > Frameworki
Master Pain
Witam

Przejdę od razu do meritum. Klasę modelu dziedziczę po Zend_Db_Table_Abstract.
Podczas wykonywania zapytań z warunkiem, np. usunięcie rekordu o id = 5, stosuję kod:
  1. //$id = 5
  2. return $this->delete(array('id = ?', $id)); // UPDATE wyjaśniony parę postów niżej. Wystąpił tutaj mały błąd, powinno być tak jak linijka poniżej
  3. return $this->delete(array('id = ?' => $id));

Czy wystarczy to, żeby ZF sam zastosował znaki ucieczki? Czy powinienem mimo wszystko zastosować metodę 'quoteInto':
  1. return $this->delete($this->_db->quoteInto('id = ?', $id));


Analogicznie przy 'select':
  1. return $this->_db->fetchRow($this->getAdapter()->select()->from($this->_name)->where('id = ?', $id));

czy raczej:
  1. return $this->_db->fetchRow($this->getAdapter()->select()->from($this->_name)->where($this->_db->quoteInto('id = ?', $id));

questionmark.gif

Pozdrawiam!
darko
Akurat w powyższym przypadku nie jest to konieczne, zwłaszcza że:
Cytat
Numeric datatypes are not quoted, and other types are quoted.

[za:] http://framework.zend.com/manual/en/zend.d...ting.quote-into

Dodam, że zależy też od użytego adaptera, w przypadku pdo wydaje się, że w ogóle nie ma potrzeby stosowania metody quoteInto, gdyż parametry są za każdym razem bindowane do znaków zapytania.

Cytat
Czy wystarczy to, żeby ZF sam zastosował znaki ucieczki?

W podanym przez Ciebie przykładzie nie ma miejsca, ani potrzeby na stosowanie znaku ucieczki
Master Pain
Fakt, nie pomyślałem, że dla int-ów nie musi być tak samo jak dla stringów. Co w przypadku, jeżeli przekazuję string? Należy stosować quoteInto? I tak, korzystam z PDO.
darko
Przyznam, że nigdy nie korzystałem z tej metody i jakoś mi jej w ogóle nie potrzeba (PDO). Dla PDO nie trzeba, tam każdy parametr jest bezpiecznie "eskejpowany", "quote'owany" etc. i na końcu bindowany do treści zapytania.
Master Pain
Bardzo dziękuję za odpowiedzi. I to jak szybko!
darko
Akurat się na święta rozchorowałem i z nudy "siedzę sobie na" forum. No cóż. Wesołych Świąt!
Master Pain
Oczywiście wkradł się błąd mały, update'y porobione i opisane, ale problem nadal rozwiązany.
Przeszedłem się też po kodzie i ZF i tak korzysta z quoteInto w metodzie _whereExpr, jeżeli klucz tablicy nie jest intem, czyli to, co w moim przypadku.

No i również Wesołych Świąt!
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.