Namngivna platshållare i PDO i PHP

För bekvämlighet kan man använda namngivna platshållare, där ordningen på variablerna i arrayen inte spelar någon roll. Låt oss se hur man arbetar med dem.

Låt oss återigen ha följande variabler:

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

Låt oss skapa en SQL-fråga med hjälp av namngivna platshållare. Deras syntax är: kolon följt av namnet på platshållaren. Låt oss använda dem i frågan:

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

Förbereder frågan:

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

Kör frågan och skicka parametrarna som en associativ array, där nycklarna är namnen på platshållarna i SQL-frågan, och värdena är motsvarande variabler:

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

Vi kan titta på resultatet:

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

Låt oss sätta ihop allt och få följande kod:

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

Följande variabel är given:

php<?php
  $age = 30;
?>

Hitta alla användare som har en ålder lika med värdet i variabeln.

Задание 2

Följande variabler är givna:

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

Hitta alla användare som har en ålder inom intervallet som anges av variablernas värden.

Задание 3

Följande variabler är givna:

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

Hitta alla användare som har en ålder OCH lön inom intervallet som anges av variablernas värden.