PDO में PHP में पोजिशनल वेरिएबल बाइंडिंग

वेरिएबल्स को क्वेरी में एक-एक करके बाइंड किया जा सकता है। यह 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;
?>

ऐसे यूज़र प्राप्त करें जिनकी उम्र पहले या दूसरे वेरिएबल के वैल्यू से मेल खाती हो।