PDO-и PHP тавассут ба пойгоҳи додаҳо пайваст шудан
Биёед тавассути 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();
}
?>
Ба пойгоҳи додаҳои худ тавассути усули дар дарс тавзеҳдодашуда пайваст шавед.