डेल्फी 2010 का उपयोग करके, मैंने दूरस्थ MySQL सर्वर से कनेक्ट करने के लिए TSQLQuery और TSQLConnection का उपयोग किया है। मैं एक SQL क्वेरी इस प्रकार का इस्तेमाल किया है:मैं SQL क्वेरी के परिणाम कैसे प्राप्त करूं?
SQLQuery1.SQL.Text := 'SELECT * FROM registered WHERE email="'+email+'" and login_pass="'+password+'"';
SQLQuery1.Open; // Open sql connection
क्या मैं सूची या इस क्वेरी द्वारा चयनित डेटा प्रदर्शित करने के क्या करना चाहिए?
जब मैं
SQLQuery1['who']; // The resault is : James Kan
टाइप मैं इसे सूची में बहुत पिछले आइटम प्रदर्शित कर रहा है लगता है। लेकिन मैं प्रत्येक आइटम को प्रदर्शित करना चाहता हूं, जैसा कि मैं PHP में फ़ोरैच लूप के साथ कर सकता था। मैं कैसे बना सकता हूं, उदाहरण के लिए, प्रत्येक आइटम के लिए एक TLabel?
resultset से अधिक पुनरावृति एक अलग रूप में नोट के रूप में, आप जिस तरह से कोड एसक्यूएल "SQL इंजेक्शन के लिए" अनुमति देने के लिए हमेशा की तरह है। इसे लॉगिन तालिका के लिए करें, और एक स्मार्ट उपयोगकर्ता पूरी तालिका को पढ़ सकता है। आपको "एसक्यूएल पैरामीटर" का उपयोग करना चाहिए, यानी ईमेल = ईमेल और login_pass = पासवर्ड। पहले "sanitizing" बिना स्ट्रिंग कंसेटिंग स्ट्रिंग खतरनाक है क्योंकि कोई उपयोगकर्ता "उचित" charaters दर्ज कर सकता है और पूरी तरह से अपना क्वेरी बदल सकता है। –
पैरामीटर का उपयोग मानों से बच जाएगा, लेकिन आप 'NULL' को फ़िल्टर करना चाहते हैं। साथ ही, LIKE क्लॉज के साथ '%' और '_' को फ़िल्टर करें। –