Nimetetyt paikkamerkit PDO:ssa PHP:ssä

Mukavuuden vuoksi voidaan käyttää nimettyjä paikkamerkkejä, joissa muuttujien järjestyksellä taulukossa ei ole väliä. Katsotaan kuinka niiden kanssa työskennellään.

Oletetaan, että meillä on jälleen seuraavat muuttujat:

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

Tehdään SQL-kysely käyttäen nimettyjä paikkamerkkejä. Niiden syntaksi on: kaksoispiste, ja sitten paikkamerkin nimi. Käytetään niitä kyselyssä:

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

Valmistellaan kysely:

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

Suoritetaan kysely antamalla selle parametreina assosiatiivinen taulukko, jossa avaimina ovat paikkamerkkien nimet SQL-kyselyssä, ja arvoina - vastaavat muuttujat:

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

Voimme tarkastella tulosta:

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

Kootaan kaikki yhteen ja saadaan seuraava koodi:

php<?php
  $min = 1;
  $max = 5;
  
  $sql = 'SELECT * FROM users WHERE id>:min and id<:max';
  $res = $pdo->prepare($sql);
  
  $res->execute([
    'min' => $min,
    'max' => $max
  ]);
  
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>
Задание 1

Annettu muuttuja:

php<?php
  $age = 30;
?>

Etsi kaikki käyttäjät, joiden ikä on sama kuin muuttujassa annettu arvo.

Задание 2

Annetut muuttujat:

php<?php
  $age1 = 20;
  $age2 = 30;
?>

Etsi kaikki käyttäjät, joiden ikä on annettujen muuttujien määrittelemällä välillä.

Задание 3

Annetut muuttujat:

php<?php
  $age1 = 20;
  $age2 = 30;
  
  $salary1 = 1000;
  $salary2 = 2000;
?>

Etsi kaikki käyttäjät, joiden ikä JA palkka ovat annettujen muuttujien määrittelemällä välillä.