आप पीडीओ की बाइंडिंग सुविधा का बिल्कुल सही उपयोग नहीं कर रहे हैं। आपको निम्न जैसा कुछ करना चाहिए:
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
, लेकिन फिर उन्हें एक-दूसरे से बांधने का प्रयास करते हैं, जिसका कोई मतलब नहीं है।
संपादित करें:टेबल और कॉलम नाम पीडीओ का उपयोग करके बाध्य नहीं किए जा सकते।