⊗ppSpPDPP 60 of 83 menu

Позициони плейсхолдери у PDO у PHP-у

Хајде да разумемо како да радимо са позиционим плейсхолдерима. Претпоставимо да имамо две променљиве које бисмо желели да убацимо у упит:

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

Претпоставимо да желимо да убацимо наше променљиве на следећи начин:

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

Међутим, ово није безбедно радити. Због тога, уместо директног убацивања променљивих, заменићемо их позиционим плейсхолдерима, који су представљени знаком питања:

<?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ščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј