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

पीएचपी पीडीओ बिट(1) गलत डेटा प्रकार लौटाता है

आप बूलियन मान (TRUE .) को दर्शाने के लिए बिट(1) फ़ील्ड का उपयोग कर रहे हैं /FALSE )।

डेटाबेस क्लाइंट बिट फ़ील्ड (जो एक बिट से बड़ा हो सकता है) को स्ट्रिंग्स पर मैप करता है जिसमें एक वर्ण एक ऑक्टेट का प्रतिनिधित्व करता है।

आप ord() . के माध्यम से अपने बिट(1) फ़ील्ड को PHP स्ट्रिंग के रूप में उपयोग कर सकते हैं कार्य करता है क्योंकि यह स्ट्रिंग को एकल ऑक्टेट के रूप में मानता है:

if (ord($Site_Approved)) {
     ...
}

आप $Site_Approved . का उपयोग नहीं कर सकते सीधे तौर पर क्योंकि यह एक स्ट्रिंग है और यह हमेशा TRUE . का मूल्यांकन करेगा भले ही यह पहला बिट सेट हो या नहीं।

वैकल्पिक रूप से, आप SQL क्वेरी में डेटाबेस मान को पहले से ही दशमलव में डाल सकते हैं जो कि आप जो खोज रहे हैं वह हो सकता है:

s.Site_Approved+0 AS Site_Approved

0 से 1 की सीमा में दशमलव मान PHP के बूलियन के समान व्यवहार करते हैं (वे केवल प्रकार साझा नहीं करते हैं, बाकी समान है)।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ज़ेंड फ्रेमवर्क जहां क्वेरी में बयान

  2. त्रुटि 1349 (HY000):दृश्य के चयन में FROM खंड में एक उपश्रेणी शामिल है

  3. MySQL संग्रहीत कार्यविधि वापसी मान

  4. मूडल का उपयोग करके उपयोगकर्ता बनाएं और उन्हें SQL के माध्यम से पाठ्यक्रमों में नामांकित करें

  5. MacOS पर मैसकल शेल को अनइंस्टॉल कैसे करें