Veb dasturlashda ma’lumotlar bazasi bilan ishlash eng muhim jarayonlardan biridir. PHP’da MySQL bazasiga ulanishning bir necha usullari mavjud, ammo eng ishonchli va zamonaviy usul — bu PDO (PHP Data Objects) orqali ishlashdir. Ushbu maqolada biz PDO yordamida MySQL bilan xavfsiz ulanishni va so‘rovlarni bajarishni bosqichma-bosqich o‘rganamiz.
1. PDO nima?
PDO — bu PHP’da ma’lumotlar bazalari bilan ishlash uchun universal interfeys hisoblanadi. U faqat MySQL emas, balki PostgreSQL, SQLite, SQL Server kabi boshqa bazalarni ham qo‘llab-quvvatlaydi. Eng asosiysi, PDO SQL so‘rovlarini tayyorlangan so‘rovlar (prepared statements) orqali xavfsiz bajaradi va SQL injection hujumlariga qarshi himoya qiladi.
2. MySQL bazasiga ulanish
PDO orqali bazaga ulanish uchun quyidagi koddan foydalanamiz:
$host = 'localhost'; $db = 'testdb'; $user = 'root'; $pass = ''; $charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
try {
$pdo = new PDO($dsn, $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Bazaga muvaffaqiyatli ulandik!";
} catch (PDOException $e) {
echo "Ulanishda xatolik: " . $e->getMessage();
}
Bu kodda biz DSN (Data Source Name) orqali ulanishni aniqlaymiz va try/catch blok yordamida xatoliklarni ushlab olamiz. Agar baza mavjud bo‘lsa, “Bazaga muvaffaqiyatli ulandik!” degan xabar chiqadi.
3. Ma’lumot qo‘shish (INSERT)
Endi bazaga yangi yozuv qo‘shishni o‘rganamiz. PDO’da bu jarayon quyidagicha amalga oshiriladi:
$sql = "INSERT INTO users (ism, email) VALUES (:ism, :email)"; $stmt = $pdo->prepare($sql); $stmt->execute(['ism' => 'Ali', 'email' => '[email protected]']); echo "Ma'lumot bazaga qo'shildi!";
Bu yerda :ism va :email parametrlar tayyorlangan so‘rov orqali uzatiladi. Bu usul SQL injection xavfini yo‘q qiladi.
4. Ma’lumot o‘qish (SELECT)
Bazadan ma’lumotlarni olish uchun quyidagi koddan foydalanamiz:
$stmt = $pdo->query("SELECT * FROM users"); $users = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($users as $user) {
echo $user['ism'] . " - " . $user['email'] . "
";
}
fetchAll(PDO::FETCH_ASSOC) ma’lumotlarni associative massiv sifatida qaytaradi. Har bir foydalanuvchi haqida ism va email ekranga chiqariladi.
5. Ma’lumotni yangilash (UPDATE)
Bazadagi mavjud yozuvni yangilash uchun quyidagi so‘rovdan foydalanish mumkin:
$sql = "UPDATE users SET email = :email WHERE ism = :ism"; $stmt = $pdo->prepare($sql); $stmt->execute(['email' => '[email protected]', 'ism' => 'Ali']); echo "Ma'lumot yangilandi!";
6. Ma’lumotni o‘chirish (DELETE)
Yozuvni o‘chirish uchun:
$sql = "DELETE FROM users WHERE ism = :ism"; $stmt = $pdo->prepare($sql); $stmt->execute(['ism' => 'Ali']); echo "Yozuv o'chirildi!";
7. Xulosa
PDO yordamida MySQL bilan ishlash — bu xavfsizlik, tezlik va soddalikni birlashtirgan eng to‘g‘ri yondashuvdir. PDO faqat MySQL bilan cheklanib qolmaydi, uni boshqa ko‘plab bazalarda ham ishlatish mumkin. Siz endi PHP’da bazaga ulanib, CRUD (Create, Read, Update, Delete) amallarni xavfsiz bajarishni o‘rgandingiz.

Комментариев нет