Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
🔴 Advanced  ·  Lesson 26

PDO vs MySQLi

MySQL से बात करने के दो तरीके

PHP आपको MySQL database से जुड़ने के दो built-in तरीके देती है: PDO और MySQLi। दोनों एक ही काम कर सकते हैं — connect, queries चलाना, prepared statements इस्तेमाल करना। चुनाव तय करता है आपका code कैसा दिखे और कितना portable हो। अंतर समझना आपको अपने project के लिए सही चुनने में मदद करता है।

💡 छोटा रूप: PDO = कई databases के साथ, साफ़ शैली। MySQLi = सिर्फ़ MySQL।

हर एक से connect करना

PDO connection:

<?php
  $pdo = new PDO("mysql:host=localhost;dbname=school", "root", "");
?>

MySQLi connection:

<?php
  $mysqli = new mysqli("localhost", "root", "", "school");
?>

दोनों उसी database से connection खोलते हैं; बस syntax अलग है। PDO एक connection string इस्तेमाल करता है; MySQLi हिस्सों को अलग arguments की तरह भेजता है।

दोनों में prepared statements

PDO साफ़ named placeholders support करता है:

<?php
  $stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
  $stmt->execute([":email" => "aman@site.com"]);
?>

MySQLi ? इस्तेमाल करता है और position से bind करता है:

<?php
  $stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");
  $stmt->bind_param("s", $email);
  $stmt->execute();
?>

दोनों SQL injection से बचाते हैं। PDO के named placeholders लंबी queries में अक्सर पढ़ना आसान होते हैं।

मुख्य अंतर

बातPDOMySQLi
Databasesकई (MySQL, SQLite वग़ैरह)सिर्फ़ MySQL
Named placeholdersहाँ (:email)नहीं (सिर्फ़ ?)
शैलीएक जैसा APIMySQL-specific
Prepared statementsहाँहाँ

कौन-सा इस्तेमाल करें

ज़्यादातर नए projects के लिए PDO सुझाया गया विकल्प है: यह database-independent है, साफ़ और एक जैसा API रखता है, और named placeholders support करता है। MySQLi सिर्फ़ तब चुनिए जब पक्का हो कि project हमेशा MySQL इस्तेमाल करेगा और आपको इसकी शैली पसंद है। किसी भी हाल में, हमेशा prepared statements इस्तेमाल कीजिए।

आम गलतियाँ

  • PDO और MySQLi मिलाना। एक चुनिए और पूरे में इस्तेमाल कीजिए — ये आपस में बदले नहीं जा सकते।
  • Prepared statements छोड़ना। दोनों APIs को SQL injection रोकने के लिए इनकी ज़रूरत है।
  • MySQLi चुनकर फिर दूसरा database चाहिए होना। बाद में switch करने का मतलब code दोबारा लिखना।
  • Error handling भूलना। exceptions/errors on कीजिए ताकि development में failures दिखें।

सारांश

  • PDO और MySQLi PHP के MySQL से जुड़ने के दो तरीके हैं।
  • PDO कई databases के साथ चलता है और named placeholders support करता है।
  • MySQLi सिर्फ़ MySQL के साथ चलता है।
  • दोनों prepared statements support करते हैं — हमेशा इस्तेमाल कीजिए।
  • नए projects के लिए PDO आमतौर पर बेहतर default है।

आगे, सुरक्षित connect और query कीजिए PHP MySQL connection में, या data operations बनाइए PHP CRUD से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

PDO और MySQLi में मुख्य अंतर क्या है?
PDO कई databases (MySQL, PostgreSQL, SQLite वग़ैरह) के साथ चलता है और एक जैसी शैली रखता है। MySQLi सिर्फ़ MySQL के साथ। PDO :email जैसे named placeholders भी support करता है, जो कई developers को साफ़ लगते हैं।
नए project के लिए PDO और MySQLi में क्या बेहतर है?
नए projects के लिए PDO आमतौर पर सुझाया जाता है क्योंकि यह database-independent है, साफ़ और एक जैसा API रखता है, और named parameters support करता है। अगर आप पक्का सिर्फ़ MySQL इस्तेमाल करेंगे तो MySQLi भी ठीक है।
क्या दोनों prepared statements support करते हैं?
हाँ। PDO और MySQLi दोनों prepared statements support करते हैं, जो SQL injection रोकने को ज़रूरी हैं। Syntax अलग है, पर सुरक्षा का फ़ायदा दोनों में एक जैसा है।
Named placeholders क्या हैं?
:email जैसे named placeholders आपको query में हर value को label करने देते हैं, anonymous ? निशानों के बजाय। PDO इन्हें support करता है; classic MySQLi सिर्फ़ ?। Named वाले लंबी queries पढ़ना आसान करते हैं।
क्या मैं बाद में MySQLi से PDO पर switch कर सकता हूँ?
हाँ, पर इसका मतलब अपना database code दोबारा लिखना है क्योंकि function नाम और शैली अलग हैं। यही एक अच्छा कारण है कि PDO जल्दी चुन लें अगर databases बदल सकते हैं या शुरू से साफ़ API चाहिए।
← Back to PHP Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicForm Validation आपकी प्रगति: 26 / 50 (52%) · Lesson 27 / 50 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें