PHP да PDO орқали БД билан боғланиш
Келинг, PDO орқали БД билан боғланишни амалга оширамиз. Бошлаш учун кириш маълумотларини ўзгарувчиларга ёзамиз:
<?php
$host = 'localhost'; // хост номи (оддатий ҳолда, ҳамиша шундай)
$db = 'test'; // БД номи
$user = 'root'; // БД га кириш учун фойдаланувчи номи
$pass = 'root'; // БД га кириш учун парол
?>
Энди биз махсус форматда сатр
тайёрлашимиз керак. Ушбу сатрда
биз фойдаланилаётган БД турини (оддатий ҳолда, 'mysql'),
хост номи ва БД номини кўрсатишимиз керак:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
Сўнгра PDO опциялари массивини яратамиз, уларни иш жараёнида фойдаланамиз (ҳозирча уларга чуқур эътибор берманг):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Энди биз юқорида эълон қилинган ўзгарувчиларни фойдаланиб, маълумотлар базасига уланишни амалга оширишимиз мумкин:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
Юқорида келтирилган код ёки маълумотлар базасига уланади,
ёки истисно ташлайди.
Шу сабабдан, уланишни try-catch конструкциясига
ўраб қўйиш тўғрироқ бўлади:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Тўлиқ код шундай кўринишда бўлади:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // БД га кириш учун фойдаланувчи номи
$pass = ''; // БД га кириш учун парол
$charset = 'utf8';
$dsn = "mysql:host=$host; dbname=$db; charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Ўзингизнинг БД ингиз билан дарсда тавсифланган усул билан уланишни ўрнатинг.