⊗ppSpPDPP 60 of 83 menu

Poziční placeholdery v PDO v PHP

Pojďme se podívat, jak pracovat s pozičními placeholdery. Předpokládejme, že máme dvě proměnné, které chceme vložit do dotazu:

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

Předpokládejme, že chceme naše proměnné vložit následujícím způsobem:

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

To však není bezpečné. Místo přímého vkládání proměnných je proto nahradíme pozičními placeholdery, které jsou reprezentovány otazníky:

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

Nyní provedeme příkaz, který připraví dotaz:

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

Nyní provedeme dotaz předáním parametrů pole obsahujícího naše proměnné. Přitom se proměnné vloží do dotazu v pořadí, v jakém jsou uvedeny v poli:

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

Poté můžeme získat výsledek dotazu:

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

Shrňme vše dohromady a získáme následující kód:

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

Jsou dány proměnné:

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

Najděte všechny uživatele, jejichž věk nebo plat se rovnají zadaným hodnotám v proměnných.

Zkuste provést SQL-injekci do vašeho kódu. Ověřte, že se nezdaří.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout