आपको प्राप्त होने वाली त्रुटि का समाधान करने के लिए, mysql_real_escape_string()
mysql_connect()
. के माध्यम से एक खुले कनेक्शन की आवश्यकता है . चूंकि आपके पास एक नहीं है, यह कनेक्ट करने का प्रयास कर रहा है और विफल हो रहा है (matthew
के उपयोगकर्ता नाम का उपयोग करके) , जबकि आपका पीडीओ root
. से जुड़ रहा है ) इसके अतिरिक्त, आप नहीं कर सकते (या, नहीं ) मिक्स एंड मैच करें mysql_real_escape_string()
और PDO
- वे अलग-अलग पुस्तकालय हैं।
तैयार बयानों का उपयोग करने के लिए "कब" के संबंध में, अंगूठे का सामान्य नियम तब होता है जब मूल्यों को हार्डकोड नहीं किया जाता है। LIKE '%hotmail%'
. का आपका उदाहरण इसे तैयार करने की आवश्यकता नहीं है, यह हार्डकोडेड है और कभी भी बदलने वाला नहीं है (जब तक कि आप इसे मैन्युअल रूप से अपडेट नहीं करते, निश्चित रूप से)।
यदि आपके पास कोई प्रश्न है जो किसी भी प्रकार के चर में ले जाएगा, तो यह $_POST
से डेटा हो या $_GET
, या एक वेरिएबल जिसे डेवलपर ने क्वेरी से पहले 10 लाइनें बनाई हैं, आपको एक तैयार कथन का उपयोग करना चाहिए (या कम से कम इससे बचें, पीडीओ::उद्धरण
)।