Jump to content

Archived

This topic is now archived and is closed to further replies.

dj.drezyna

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

Recommended Posts

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()...

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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']%
      )

Share this post


Link to post
Share on other sites

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);

Share this post


Link to post
Share on other sites

×
×
  • Create New...