MySQL ma'lumotlar bazasi bilan o'zaro aloqada bo'lgan dinamik veb-sahifalarni yaratmoqchi bo'lsangiz, PHP yordamida ma'lumotlar bazasiga qanday ulanish va so'rovlarni bilishingiz kerak. Ushbu blog postida men buni ikki xil usul yordamida qanday qilishni ko'rsataman: MySQLi va PDO.

MySQLi va PDO nima?

MySQLi va PDO - bu MySQL ma'lumotlar bazalari bilan ishlash imkonini beruvchi ikkita PHP kengaytmasi. MySQLi MySQL Improved, PDO esa PHP Data Objects degan ma'noni anglatadi. Ikkala kengaytma ham veb-ilovangizni SQL in'ektsion hujumlaridan himoya qiluvchi tayyorlangan bayonotlarni qo'llab-quvvatlaydi. Biroq, ularning ba'zi farqlari bor, ulardan birini tanlashdan oldin bilishingiz kerak.

MySQLi

MySQLi - bu faqat MySQL ma'lumotlar bazalari bilan ishlaydigan kengaytma. U ob'ektga yo'naltirilgan va protsessual interfeysni taklif qiladi, shuning uchun siz kodlash uslubingizga mos keladiganini tanlashingiz mumkin. MySQLi-dan foydalanish oson va MySQL bilan ishlashni osonlashtiradigan ko'plab funktsiyalarga ega.

PDO

PDO - bu 12 xil ma'lumotlar bazasi tizimlari, jumladan MySQL bilan ishlaydigan kengaytma. U faqat ob'ektga yo'naltirilgan interfeysni taklif qiladi, ba'zi ishlab chiquvchilar uni protsessual interfeysdan afzal ko'rishadi. PDO MySQLi-ga qaraganda ancha moslashuvchan va portativdir, chunki u sizning kodingizning katta qismini o'zgartirmasdan turli ma'lumotlar bazalari o'rtasida almashish imkonini beradi.

PHP bilan MySQL ma'lumotlar bazasiga qanday ulanish mumkin

MySQL ma'lumotlar bazasini so'rashdan oldin serverga ulanishni o'rnatishingiz kerak. Buning uchun siz host nomi, foydalanuvchi nomi, parol va ma'lumotlar bazasi nomi kabi ba'zi ma'lumotlarni taqdim etishingiz kerak. Shuningdek, ulanish ob'ektini ushlab turadigan o'zgaruvchini yaratishingiz kerak.

MySQLi-dan foydalanish

MySQLi yordamida MySQL ma'lumotlar bazasiga ulanish uchun siz ob'ektga yo'naltirilgan yoki protsessual uslubdan foydalanishingiz mumkin. Mana ikkalasiga ham misollar:

Ob'ektga yo'naltirilgan uslub

<?php
// Create connection
$conn = new mysqli("localhost", "username", "password", "database");

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Protsessual uslub

<?php
// Create connection
$conn = mysqli_connect("localhost", "username", "password", "database");

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

PDO dan foydalanish

PDO yordamida MySQL ma'lumotlar bazasiga ulanish uchun siz quyidagi sintaksisdan foydalanishingiz kerak:

<?php
// Create connection
$conn = new PDO("mysql:host=hostname;dbname=database", "username", "password");

// Check connection
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
?>

E'tibor bering, PDO ulanish uchun haqiqiy ma'lumotlar bazasi nomini talab qiladi. Agar siz bittasini ko'rsatmasangiz, u istisno qiladi.

PHP bilan MySQL ma'lumotlar bazasini qanday so'rash mumkin

Ma'lumotlar bazasiga ulanganingizdan so'ng siz PHP yordamida SQL so'rovlarini bajarishingiz mumkin. Buning uchun ulanish ob'ektining query() yoki prepare() usulidan foydalanishingiz kerak.

MySQLi-dan foydalanish

MySQLi-dan foydalanib MySQL ma'lumotlar bazasini so'rash uchun siz ob'ektga yo'naltirilgan yoki protsessual uslubdan foydalanishingiz mumkin. Mana ikkalasiga ham misollar:

Ob'ektga yo'naltirilgan uslub

<?php
// Create connection
$conn = new mysqli("localhost", "username", "password", "database");

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

// Select all records from the users table
$sql = "SELECT * FROM users";
$result = $conn->query($sql);

// Check if the query returned any rows
if ($result->num_rows > 0) {
  // Output data of each row
  while($row = $result->fetch_assoc()) {
    echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
  }
} else {
  echo "No results found";
}

// Close connection
$conn->close();
?>

Protsessual uslub

<?php
// Create connection
$conn = mysqli_connect("localhost", "username", "password", "database");

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

// Select all records from the users table
$sql = "SELECT * FROM users";
$result = mysqli_query($conn, $sql);

// Check if the query returned any rows
if (mysqli_num_rows($result) > 0) {
  // Output data of each row
  while($row = mysqli_fetch_assoc($result)) {
    echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
  }
} else {
  echo "No results found";
}

// Close connection
mysqli_close($conn);
?>

PDO dan foydalanish

PDO yordamida MySQL ma'lumotlar bazasini so'rash uchun ulanish ob'ektining query() yoki prepare() usulidan foydalanishingiz kerak. Mana query() usulidan foydalanishga misol:

<?php
// Create connection
$conn = new PDO("mysql:host=localhost;dbname=database", "username", "password");

// Check connection
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Select all records from the users table
$sql = "SELECT * FROM users";
$result = $conn->query($sql);

// Check if the query returned any rows
if ($result->rowCount() > 0) {
  // Output data of each row
  while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
  }
} else {
  echo "No results found";
}

// Close connection
$conn = null;
?>

Ushbu blog postida men sizga PHP yordamida MySQL ma'lumotlar bazasiga qanday ulanish va so'rovlar qilishni ko'rsatib berdim. Siz ikki xil usuldan qanday foydalanishni o'rgandingiz: MySQLi va PDO. Ikkala usulning ham ijobiy va salbiy tomonlari bor, shuning uchun siz o'zingizning ehtiyojlaringiz va afzalliklaringizga mos keladiganini tanlashingiz kerak.

Umid qilamanki, siz ushbu postni foydali va ma'lumotli deb topdingiz. Agar sizda biron bir savol yoki fikringiz bo'lsa, iltimos, quyida sharh qoldiring.

O'qiganingiz uchun tashakkur!