⊗ppSpPDPP 60 of 83 menu

Positionaaliset paikkamerkit PDO:ssa PHP:ssä

Selvitetään, kuinka positionaalisia paikkamerkkejä käytetään. Oletetaan, että meillä on kaksi muuttujaa, jotka haluaisimme lisätä kyselyyn:

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

Oletetaan, että haluamme lisätä muuttujamme seuraavalla tavalla:

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

Tämä ei kuitenkaan ole turvallista. Sen sijaan, että lisäisimme muuttujat suoraan, korvaamme ne positionaalisilla paikkamerkeillä, jotka ovat kysymysmerkkejä:

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

Suoritetaan nyt komento, joka valmistelee kyselyn:

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

Suoritetaan nyt kysely välittämällä sille parametreina taulukko, joka sisältää muuttujamme. Tässä tapauksessa muuttujat lisätään kyselyyn siinä järjestyksessä, kuin ne on määritelty taulukossa:

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

Tämän jälkeen voimme saada kyselyn tuloksen:

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

Kootaan kaikki yhteen ja saadaan seuraava koodi:

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

Annetut muuttujat:

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

Etsi kaikki käyttäjät, joiden ikä tai palkka ovat yhtä suuria kuin muuttujissa annetut arvot.

Yritä suorittaa SQL-injektio koodiisi. Varmista, että se ei onnistu.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää