⊗ppSpPDPP 60 of 83 menu

PHP да PDO да позицияга асосланган плейсхолдерлар

Позицияга асосланган плейсхолдерлар билан қандай ишлашни кўриб чиқайлик. Фарз қилайлик, бизда сўровга қўшмоқчи бўлган икки та ўзгарувчи мавжуд:

<?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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш