Skocz do zawartości
Zaloguj się, aby obserwować  
dj.drezyna

[php]PDO pobieranie łańcucha znaków przetworzonego zapytania

Polecane posty

Jak w PDO pobrać całe zapytanie, które po podpięciu parametrów jest bezpieczne do wykonania w postaci jakiej jest, czyli normalnie w formie tekstu ale już z zabezpieczonymi i unieszkodliwionymi znakami. Jednym zdaniem już po spreparowaniu wartości.

 

Czy jest to pole klasy PDOStatement:

readonly string $queryString;

A jeśli tak, to kiedy zawiera żądaną wartość łańcucha znaków odpowiadającemu przygotowanym wartościom przy pomocy np. bindValue?

Bo nie ma tu metody typu getTextStatement()...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To w takim razie jak budować jakąś klasą zapytania tak by przekazując jako podzapytanie miało zfiltrowane dane? Tak żeby nie były podatne na wstrzyknięcie SQL?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja u siebie mam 2 odzielne klasy.

 

Bind - Przekazuje jej dane do podpięcia,

Overlay - Nakładka na pdo

 

Gdy wywołuje metode "select" to przekazuje jej zapytanie sql i obiekt klasy Bind. Łot cała filozofija.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No fajnie, dzięki za odpowiedź. Jak byś jeszcze mógł podać jak z tych klas się korzysta. Powiedzmy, że chcę zrobić zapytanie:

SELECT nazwa
FROM tabela
WHERE id IN (
         SELECT tab.id
         FROM tab
         WHERE tab.id < tabela.id
         AND imie LIKE %$_GET['bardzo_zla_zmienna']%
      )

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Standardowo czyli

 

$sql = 'SELECT
           *
       FROM
           people
       WHERE
           name LIKE :name';
$bind = \Database\OverlayBind();
$bind->add(':name', '%' . $name . '%', \Database\OverlayBind::PARAM_STR);
$peoples = \Database\Overlay::getInstance()->select($sql, $bind);

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
Zaloguj się, aby obserwować  

×