Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

संग्रहीत प्रक्रिया के साथ php में pdo का उपयोग करना

आपको bindValue का उपयोग करना होगा इसके बजाय bindParam

जब आप बाइंडपरम का उपयोग करते हैं, तो यह पैरामीटर को प्रदान किए गए वेरिएबल को बांधता है, न कि वेरिएबल के मान को।

तो, अगर आप ऐसा करते हैं:

$x = 5;
$stmt->bindParam(1, $x, PDO::PARAM_INT);
$x = 6;
$stmt->execute(); //executes with 6 instead of 5

इसे वास्तव में 5 के बजाय 6 के साथ निष्पादित किया जाता है। ऐसा करने के लिए, विधि में चर का संदर्भ होना चाहिए। आपके पास एक शाब्दिक का संदर्भ नहीं हो सकता है, इसलिए इसका मतलब है कि बाइंडपरम का उपयोग शाब्दिक (या कुछ भी जिसका आप संदर्भ नहीं दे सकते) के साथ नहीं किया जा सकता है।

$x = 5;
$stmt->bindValue(1, $x, PDO::PARAM_INT);
$x = 6;
$stmt->execute(); //executes with 5 instead of 6

फिर:

$stmt->bindParam(1, 1, PDO::PARAM_INT); 
//invalid because there's no way to pass a literal 1 by reference
$stmt->bindValue(1, 1, PDO::PARAM_INT);
//valid


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL डेटाबेस पर वर्जन कंट्रोल (Git) का उपयोग करना

  2. java.lang.AbstractMethodError:com.mysql.jdbc.PreparedStatement.setBlob(ILjava/io/InputStream;)V

  3. MySQL नेस्टेड चयन क्वेरी?

  4. MySQL प्रतिशत की गणना करें

  5. PHP CRUD MySQL डेटाबेस के साथ पोस्ट बनाएं, संपादित करें, अपडेट करें और हटाएं