PHP PDO Introduction
In this page:
$pdo = new PDO("mysql:host=hostname;dbname=database_name", $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$statement = $pdo->query("SELECT * FROM table_name");
PDO क्या है?
PDO (PHP Data Objects) कई अलग database systems से बात करने के लिए एक single, consistent object-oriented API देता है — MySQL, PostgreSQL, SQLite, और और — इसलिए बाद में database switch करने का मतलब आपकी सारी query code फिर से लिखना नहीं है।
उदाहरण: What is PDO?
<?php
$pdo = new PDO('sqlite::memory:');
echo get_class($pdo);
// The same PDO API works for MySQL, PostgreSQL, SQLite, and more
?>
Login to try C/C++/Java/PHP code in the editor
PDO Error Modes
आप new PDO($dsn, $user, $password) से एक PDO connection बनाते हैं, जहाँ DSN (Data Source Name) string database driver और connection details specify करती है, जैसे 'mysql:host=localhost;dbname=myapp'।
उदाहरण: PDO Error Modes
<?php
// On a real server: new PDO('mysql:host=localhost;dbname=myapp', $user, $password);
$pdo = new PDO('sqlite::memory:');
echo "Connected via DSN";
?>
Login to try C/C++/Java/PHP code in the editor
Queries Execute करना (query)
PDO prepared statements में named placeholders (:name) और positional placeholders (?) दोनों support करता है, mysqli के ज़्यादा rigid parameter binding की तुलना में values bind करने में आपको flexibility देते हुए।
उदाहरण: Executing Queries (query)
<?php
// Create a new `PDO` instance with 'sqlite::memory:', stored in `$pdo`
$pdo = new PDO('sqlite::memory:');
$pdo->exec("CREATE TABLE users (id INTEGER, name TEXT)");
// Declare `$stmt`, set to `$pdo->prepare("INSERT INTO users (id, name) VALUES (:id, :name)")`
$stmt = $pdo->prepare("INSERT INTO users (id, name) VALUES (:id, :name)");
$stmt->execute(['id' => 1, 'name' => 'Alice']);
// Print "Inserted using named placeholder" to the output
echo "Inserted using named placeholder";
?>
Login to try C/C++/Java/PHP code in the editor
Statements Execute करना (exec)
PDO::ATTR_ERRMODE को PDO::ERRMODE_EXCEPTION पर set करना PDO को database errors पर चुपचाप false return करने के बजाय real exceptions throw करवाता है, जो strongly recommended है क्योंकि यह failures को गलती से ignore करना असंभव बना देता है।
उदाहरण: Executing Statements (exec)
<?php
// Create a new `PDO` instance with 'sqlite::memory:', stored in `$pdo`
$pdo = new PDO('sqlite::memory:');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Try running this block; jump to `catch` if it throws
try {
$pdo->exec("SELECT * FROM nonexistent_table");
// Catch PDOException $e
} catch (PDOException $e) {
// Print "Caught exception instead of a silent failure" to the output
echo "Caught exception instead of a silent failure";
}
?>
Login to try C/C++/Java/PHP code in the editor
PDO Connections बंद करना
क्योंकि PDO कई database engines पर abstract करता है, कई teams default रूप से mysqli के बजाय इसे चुनते हैं, MySQL-only projects के लिए भी, सिर्फ इसके ज़्यादा consistent और modern API और easier future portability के लिए।
उदाहरण: Closing PDO Connections
<?php
$pdo = new PDO('sqlite::memory:');
echo "PDO's consistent API is why many teams pick it even for MySQL-only projects";
$pdo = null; // closes the connection
?>
Login to try C/C++/Java/PHP code in the editor
PDO::ERRMODE_EXCEPTIONset न करना, ताकि errors silent रहें।- user input के साथ
queryइस्तेमाल करना, जो SQL injection की अनुमति देता है। execइस्तेमाल करना और rows वापस मिलने की उम्मीद करना, जबकि यह affected rows की संख्या return करता है।
Chapter Quiz — Complete all 21 topics to unlock
0/21 topics done
Complete these topics first:
- PHP MySQL Introduction
- PHP MySQLi Connection
- PHP PDO Introduction
- PHP CRUD Operations
- PHP Prepared Statements
- PHP Stored Procedures
- PHP Transactions
- PHP Error Handling in DB
- PHP MySQL Connect
- PHP MySQL Create DB
- PHP MySQL Create Table
- PHP MySQL Insert Data
- PHP MySQL Get Last ID
- PHP MySQL Insert Multiple
- PHP MySQL Prepared Statements
- PHP MySQL Select Data
- PHP MySQL Where
- PHP MySQL Order By
- PHP MySQL Delete Data
- PHP MySQL Update Data
- PHP MySQL Limit Data