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

पीडीओ तैयार बयान एक कक्षा के अंदर

आप पीडीओ की बाइंडिंग सुविधा का बिल्कुल सही उपयोग नहीं कर रहे हैं। आपको निम्न जैसा कुछ करना चाहिए:

public function update($table, $key, $value, $id) {
    $stmt = $this->conn->prepare(
        "UPDATE $table SET $key = :value WHERE id = :id"
    );
    return $stmt->execute(array(
        ':value' => $value,
        ':id' => $id
    ));
}

सबसे पहले, आपको पूरे स्ट्रिंग को बाध्यकारी सरणी की कुंजी में बाध्य करने की आवश्यकता है। तो आप ':id' . डालें के बजाय 'id' . इसके अलावा आप $table . के मामले में वेरिएबल को सीधे क्वेरी में डाल रहे थे और $value , लेकिन फिर उन्हें एक-दूसरे से बांधने का प्रयास करते हैं, जिसका कोई मतलब नहीं है।

संपादित करें:टेबल और कॉलम नाम पीडीओ का उपयोग करके बाध्य नहीं किए जा सकते।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं कैसे जांचूं कि PHP पहले से किसी डेटाबेस से कनेक्ट है या नहीं?

  2. सक्रिय रिकॉर्ड का उपयोग करते समय मैं कोडनिर्देशक में बैकटिक्स को कैसे अनदेखा करूं? मुझे मामलों द्वारा आदेश देने की आवश्यकता है

  3. कमांड लाइन मैक से mysql तक नहीं पहुंच सकता

  4. मैं दो कॉलम पर WHERE क्लॉज के साथ एक MySQL क्वेरी को कैसे तेज कर सकता हूं?

  5. PHP में INET_ATON () और INET_NTOA ()?