मेरे पास दो भिन्न कार्य हैं:
फ़ंक्शन user_count () {global $ db; $ Query = mysqli_query ($ db, "उपयोगकर्ताओं का चयन संख्या (user_id)"); यदि ($ परिणाम = $ क्वेरी) {$ user_count = mysqli_num_rows ($ परिणाम); mysqli_free_result ($ परिणाम); $ User_count वापसी करें; }} इस फ़ंक्शन में, मैं डेटाबेस से पूछता हूं कि वहां कितने उपयोगकर्ता हैं, और PHP में मैं user_count () का उपयोग करता हूं। इस फ़ंक्शन का नतीजा है 1. जो सही है, क्योंकि मेरे पास इस समय डेटाबेस में केवल 1 उपयोगकर्ता है। हालांकि, जब मैं एक अलग फ़ंक्शन के लिए एक समान कोड का उपयोग करता हूं जैसे:
फ़ंक्शन user_exists ($ उपयोगकर्ता नाम) {वैश्विक $ db; स्वच्छ ($ उपयोगकर्ता नाम); $ Query = mysqli_query ($ db, "चयन करें COUNT (user_id) उपयोगकर्ताओं से जहां उपयोगकर्ता नाम ="। $ उपयोगकर्ता नाम) या मर ("काम नहीं करता"); यदि ($ परिणाम = $ क्वेरी) {$ user_exists = mysqli_num_rows ($ परिणाम); mysqli_free_result ($ परिणाम); वापसी $ user_exists; }} का उल्लेख नहीं करने के लिए मैंने भी sanitize ($ उपयोगकर्ता नाम) टिप्पणी करने की कोशिश की है। लेकिन यहां तक कि इसके साथ टिप्पणी भी की मैं अब भी एक त्रुटि प्राप्त कर रहा हूं।
और मैं फ़ंक्शन user_exists ("superadmin") का उपयोग करता हूं, मुझे "काम नहीं करता" त्रुटि मिलती है। मैं सोच रहा हूं कि दूसरे फ़ंक्शन में मैं क्या गलत कर रहा हूं जहां पहला फ़ंक्शन पंक्तियों की संख्या वापस करेगा, जहां दूसरा फ़ंक्शन त्रुटि लौटाएगा।
मुझे पता है कि यह निश्चित है: <
डेटाबेस डेटाबेस पर मौजूद है यदि आप उत्तर देते हैं तो बहुत सराहना की जाएगी प्रक्रियात्मक शैली का उपयोग कर।
आप तालिका उपयोगकर्ताओं में यूज़र_आईड्स की संख्या के लिए पूछ रहे हैं, इसलिए MySQL सर्वर कुछ इस तरह वापस करेगा:
mysql & gt; उपयोगकर्ताओं से SELECT COUNT (user_id); + ---------- + | गिनती (*) | + ---------- + | 36 | + ---------- + 1 सेट में पंक्ति (0.00 सेकंड) फिर, आप mysqli_num_rows का उपयोग कर रहे हैं जो कि परिणाम का पता लगाता है यह देखने के लिए कि कितने पंक्तियां लौटाई गई थी, क्वेरी। लेकिन, जैसा कि आप देख सकते हैं, वहां "सेट में 1 पंक्ति" है - इसलिए आप पंक्तियों की संख्या क्वेरी के परिणाम में वापस कर रहे हैं, नहीं की संख्या User_ids। आप क्या करना चाहते हैं ऐसा कुछ है:
$ पंक्ति = mysqli_fetch_row ($ परिणाम); $ Num_user_ids = $ पंक्ति [0]; क्योंकि पंक्ति $ [0] में पंक्ति में पहला फ़ील्ड है, जो मेरे उदाहरण में 36 है।
दूसरे भाग के लिए, आप , इस तरह से:
$ stmt = $ mysqli- & gt; ("उपयोगकर्ता का नाम चुनें उपयोगकर्ता (यूज़र_आईडी) जहां उपयोगकर्ता नाम =?"); $ Stmt-> gt; bind_param ('s', $ username); एस का मतलब है कि आप इसे बदल रहे हैं? एक स्ट्रिंग के साथ ऊपर वाली पहली पंक्ति में, जो दूसरी तर्क में दी जाती है।
आप जो भी करते हैं, आप भी कर सकते हैं, लेकिन आपको सिंगल के साथ $ username को घेरना होगा उद्धरण, क्योंकि यह क्वेरी आपके लिए नहीं करेगा।
No comments:
Post a Comment