⊗ppSpPDPP 60 of 83 menu

Pozycyjne placeholder-y w PDO w PHP

Zastanówmy się, jak pracować z pozycyjnymi placeholder-ami. Załóżmy, że mamy dwie zmienne, które chcielibyśmy wstawić do zapytania:

<?php $min = 1; $max = 5; ?>

Załóżmy, że chcemy wstawić nasze zmienne w następujący sposób:

<?php $sql = "SELECT * FROM users WHERE id>$min and id<$max"; ?>

Jednakże tak postępowanie nie jest bezpieczne. Dlatego zamiast wstawiać zmienne bezpośrednio, zamieńmy je na pozycyjne placeholder-y, które reprezentują znaki zapytania:

<?php $sql = 'SELECT * FROM users WHERE id>? and id<?'; ?>

Teraz wykonajmy komendę, która przygotuje zapytanie:

<?php $res = $pdo->prepare($sql); ?>

Teraz wykonajmy zapytanie, przekazując mu parametrami tablicę, zawierającą nasze zmienne. Przy tym zmienne zostaną wstawione do zapytania w takiej kolejności, jak są one wskazane w tablicy:

<?php $res->execute([$min, $max]); ?>

Po tym możemy uzyskać wynik zapytania:

<?php while ($row = $res->fetch()) { var_dump($row); } ?>

Zbierzmy wszystko razem i uzyskajmy następujący kod:

<?php $min = 1; $max = 5; $sql = 'SELECT * FROM users WHERE id>? and id<?'; $res = $pdo->prepare($sql); $res->execute([$min, $max]); while ($row = $res->fetch()) { var_dump($row); } ?>

Dane są zmienne:

<?php $age = 30; $salary = 1000; ?>

Znajdź wszystkich użytkowników, u których wiek lub pensja są równe wartościom podanym w zmiennych.

Spróbuj przeprowadzić SQL-injection w swoim kodzie. Upewnij się, że ona nie przejdzie.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć