⊗ppSpPDPP 60 of 83 menu

Позиционни placeholders в PDO в PHP

Нека разберем как да работим с позиционни placeholders. Да предположим, че имаме две променливи, които искаме да вмъкнем в заявката:

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

Да предположим, че искаме да вмъкнем нашите променливи по следния начин:

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

Това обаче не е безопасно. Затова вместо директно да вмъкваме променливите, нека ги заменим с позиционни placeholders, които се представят със знаци въпросителни:

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

Сега нека изпълним команда, която подготви заявката:

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

Сега нека изпълним заявката, като й предадем като параметри масив, съдържащ нашите променливи. В този случай променливите ще бъдат вмъкнати в заявката в реда, в който са указани в масива:

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

След това можем да получим резултата от заявката:

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

Нека съберем всичко заедно и получим следния код:

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

Дадени са променливите:

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

Намерете всички потребители, чиито възраст или заплата са равни на зададените в променливите стойности.

Опитайте се да извършите SQL-инжекция във вашия код. Уверете се, че тя няма да успее.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне