घातक त्रुटि: किसी गैर-ऑब्जेक्ट में php, mysql, sql, mysqli पर किसी सदस्य फ़ंक्शन data_seek () पर कॉल करें

मैं यह संदेश प्राप्त करता रहता हूं, मुझे अपने एसक्यूएल क्वेरी में एक त्रुटि पर संदेह है, हालांकि मैं php और sql के साथ अनुभवहीन हूं, इसलिए मेरे संदेह बहुत उपयोगी नहीं हो सकते हैं।

  public function verify_emp_credentials ($user)
{
$user= $this->real_escape_string($user);

$result = $this->query("SELECT 1 FROM eddy WHERE id =" . $user);

return $result->data_seek(0); //this is the line referenced
}

मैं जो करने की कोशिश कर रहा हूं वह यह सत्यापित करता है कि इनपुट एक HTML फॉर्म से गुजरता है, डीबी पर एक रिकॉर्ड से मेल खाता है .. किसी भी प्रतिक्रिया की सराहना करते हैं धन्यवाद।

उत्तर:

उत्तर № 1 के लिए 1

सुनिश्चित करें कि क्वेरी वैध परिणाम सेट लौटाती है।

public function verify_emp_credentials($user) {
$user = $this->real_escape_string($user);
if ($result = $mysqli->query("SELECT 1 FROM eddy WHERE id = " . $user)) {
$data = $result->data_seek(0);
$result->close();
return $data;
}
return FALSE;
}

मुझे यह भी पता नहीं है कि आपकी क्वेरी बिल्कुल मान्य है या नहीं। क्या आपने यह सुनिश्चित करने के लिए पहले परीक्षण किया था कि यह वैध परिणाम देता है?


उत्तर № 2 के लिए 1

आपके कोड के साथ बहुत गड़बड़ है कि वर्तमान को ठीक करने के बजाए एक नया ब्रांड लिखना आसान है।

कुछ हाइलाइट्स:

  1. उपयोग पीडीओ, mysqli नहीं।
  2. डीबी एपीआई कक्षा से अपनी आवेदन कक्षा का विस्तार न करें
  3. तैयार बयान का प्रयोग करें।
  4. उन कार्यों का उपयोग न करें जिन पर आपको कोई जानकारी नहीं है।

तो, इसे बनाओ

public function verify_emp_credentials ($user)
{
$stmt = $this->db->prepare("SELECT 1 FROM eddy WHERE id = ?");
$stmt->execute([$user]);
return $stmt->fetchColumn();
}

जवाब के लिए 0 № 3

अपने "चरित्र सेट" की जांच करें। जब आप क्वेरी भेजते हैं तो मुझे लगता है कि जब आप अपनी टेबल और अलग बनाते हैं तो यह अलग होता है।


संबंधित सवाल
सबसे लोकप्रिय