পিএইচপিতে পিডিওতে ভেরিয়েবলগুলির অবস্থানগত বাইন্ডিং

আপনি ক্যোয়ারীতে একবারে একটি করে ভেরিয়েবল বাইন্ড করতে পারেন। এটি bindValue পদ্ধতি ব্যবহার করে করা হয়। তারপর ফলাফল ক্যোয়ারীটি এক্সিকিউট করা হয়, কিন্তু এই ক্ষেত্রে execute-এ কিছু পাঠানো হয় না।

এই ধরনের বাইন্ডিং সংখ্যাসূচক মানের জন্য স্বয়ংক্রিয় উদ্ধৃতি বাতিল করে, ভেরিয়েবলের ধরন সঠিকভাবে নির্দিষ্ট করতে দেয়। আসুন দেখি কিভাবে এটি করা হয়। ধরুন আমাদের দুটি ভেরিয়েবল আছে, একটি স্ট্রিং এবং অন্যটি সংখ্যাসূচক:

php<?php
  $name = 'name1';
  $age  = 25;
?>

আসুন ক্যোয়ারীটি প্রস্তুত করি:

php<?php
  $sql = 'SELECT * FROM users WHERE name=? or age=?';
  $res = $pdo->prepare($sql);
?>

এখন bindValue পদ্ধতি ব্যবহার করে ভেরিয়েবলগুলিকে ক্যোয়ারীতে বাইন্ড করি। পদ্ধতির প্রথম প্যারামিটারে ক্যোয়ারীর অবস্থানের নম্বর নির্দিষ্ট করা হয়, দ্বিতীয় প্যারামিটারে - ভেরিয়েবলের নাম, এবং তৃতীয়টিতে ভেরিয়েবলের ধরন (সংখ্যাসূচক বা স্ট্রিং) নির্দেশ করা হয়:

php<?php
  $res->bindValue(1, $name, PDO::PARAM_INT);
  $res->bindValue(2, $age,  PDO::PARAM_STR);
?>

আসুন ক্যোয়ারীটি এক্সিকিউট করি:

php<?php
  $res->execute();
?>

আসুন ফলাফল দেখি:

php<?php
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>
Задание 1

ভেরিয়েবলগুলি দেওয়া হয়েছে:

php<?php
  $name1 = 'name1';
  $name2 = 'name2';
?>

সেসব ব্যবহারকারী পান, যাদের নাম প্রদত্ত ভেরিয়েবল দুটির যেকোনো একটির মানের সাথে মেলে।

Задание 2

ভেরিয়েবলগুলি দেওয়া হয়েছে:

php<?php
  $age1 = 21;
  $age2 = 22;
?>

সেসব ব্যবহারকারী পান, যাদের বয়স প্রদত্ত ভেরিয়েবল দুটির যেকোনো একটির মানের সাথে মেলে।