PHP တွင် PDO အသုံးပြု၍ Positional Placeholders များ

Positional placeholders များနှင့် အလုပ်လုပ်နည်းကို ကြည့်ကြပါစို့။ ကျွန်ုပ်တို့တွင် query အတွင်းထည့်လိုသည့် variable နှစ်ခုရှိသည်ဆိုပါစို့။

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

ကျွန်ုပ်တို့၏ variable များကို အောက်ပါအတိုင်း ထည့်လိုသည်ဆိုပါစို့။

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

သို့သော် ဤနည်းလမ်းသည် မလုံခြုံပါ။ ထို့ကြောင့် variable များကို တိုက်ရိုက်ထည့်ခြင်းထက် ၎င်းတို့ကို မေးခွန်းသင်္ကေတများဖြင့်ဖော်ပြထားသော positional placeholders များနှင့် အစားထိုးပါမည်။

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

ယခု query ကို ပြင်ဆင် ပေးမည့် command ကို execute လုပ်ပါမည်။

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

ယခု ကျွန်ုပ်တို့၏ variable များပါဝင်သော array တစ်ခုကို parameter အဖြစ် ပို့ပေးလိုက်ခြင်းဖြင့် query ကို execute လုပ်ပါ။ ဤသို့လုပ်ဆောင်ခြင်းဖြင့် variable များသည် array အတွင်းရှိ အစဉ်လိုက် query ထဲသို့ ထည့်သွင်းခြင်းခံရမည်ဖြစ်သည်။

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

ထို့နောက် query ၏ result ကို ရယူနိုင်ပါပြီ။

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

အားလုံးကို စုစည်းပြီး အောက်ပါ code ကို ရရှိပါမည်။

php<?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);
  }
?>
Задание 1

Variable များကို ပေးထားသည်။

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

အသက်သို့မဟုတ် လစာသည် variable များတွင် သတ်မှတ်ထားသော တန်ဖိုးနှင့် ညီသော user အားလုံးကို ရှာပါ။

Задание 2

သင်၏ code ထဲသို့ SQL injection ပြုလုပ်ရန် ကြိုးစားကြည့်ပါ။ ၎င်းသည် အောင်မြင်မည်မဟုတ်ကြောင်း သေချာပါစေ။