2013-09-06 7 views
7

के बीच क्या अंतर है मैं अपने वेब एप्लिकेशन को MySQL से SQLite डेटाबेस में माइग्रेट कर रहा हूं। मुझे पता चला कि स्क्लाइट के साथ संचार करने के लिए दो PHP एक्सटेंशन हैं: php_sqlite3.dll और php_pdo_sqlite.dllsqlite3 और pdo_sqlite

क्या एक्सटेंशन बेहतर है? या एक और सवाल: इन एक्सटेंशन के बीच बुनियादी अंतर क्या हैं?

+1

php_sqlite3 एक प्रत्यक्ष स्क्लाइट इंटरफ़ेस है, मूल रूप से sqlite php_mysql के बराबर है जो mysql _ *() फ़ंक्शंस प्रदान करता है। pdo_sqlite पीडीओ को स्क्लाइट का उपयोग करने की अनुमति देता है। –

उत्तर

15

पीडीओ PHP में डेटाबेस कनेक्शन के लिए एक रैपर है। यह अधिकांश डेटाबेस प्रबंधन प्रणालियों (MySQL, PostgreSQL ...) द्वारा प्रदान की गई कार्यक्षमता को कवर करने के लिए डिज़ाइन किया गया है, इसलिए फ़ंक्शन कॉल सभी समान हैं, इससे कोई फर्क नहीं पड़ता कि यह किस डीएमबीएस का उपयोग कर रहा है। http://php.net/manual/en/book.pdo.php देखें। php_pdo_sqlite.dll आपको SQLite डेटाबेस तक पहुंचने के लिए पीडीओ इंटरफ़ेस का उपयोग करने की अनुमति देता है।

अन्य लाइब्रेरी (php_sqlite3.dll) यह विभिन्न फ़ंक्शन कॉल के साथ स्वयं का इंटरफ़ेस है। इसका उपयोग करने वाला कोई भी कोड केवल SQLite डेटाबेस तक पहुंचने में सक्षम होगा। http://php.net/manual/en/book.sqlite3.php

आप पाएंगे कि पीडीओ पूरी तरह से SQLite3 की कार्यक्षमता से मेल नहीं खाता है। यह SQLite3 पीडीओ या पीडीओ के माध्यम से उपलब्ध चीजों की पेशकश नहीं कर सकता है जो कुछ भी नहीं करते हैं क्योंकि SQLite3 उनका समर्थन नहीं कर सकता है।

पीडीओ का लाभ यह है कि यदि आप भविष्य में फिर से स्विच करना चाहते हैं (आप एक बार स्विच कर रहे हैं ताकि आप फिर से कर सकें) तो आपको अधिक कोड नहीं बदलना होगा। यदि आप अपने एसक्यूएल जेनेरिक को पर्याप्त रखते हैं, तो आपको कनेक्शन कथन को बदलना होगा।

+0

क्या यह सुनिश्चित करने का कोई तरीका है कि आप sqlite3 एक्सटेंशन का उपयोग कर रहे हैं और पीडीओ नहीं? –

+1

हाँ, वे पूरी तरह से अलग-अलग वर्गों का उपयोग करते हैं, इसलिए पीडीओ का उपयोग करके कोड 'नया पीडीओ (...)' और एसक्लाइट 3 का उपयोग करके कोड को कॉल करेगा, आपका कोड 'नया SQLite3 (...)' –