Assolomu aleykum OMUC!!!

Kirish:

PHP 5 va undan keyingi versiyalari quyidagilar yordamida MySQL ma'lumotlar bazasi bilan ishlashi mumkin.

MySQLi kengaytmasi ("i" yaxshilangan degan ma'noni anglatadi). PDO (PHP ma'lumotlar obyektlari). PHP ning oldingi versiyalarida MySQL kengaytmasi ishlatilgan. Biroq, ushbu kengaytma 2012 yilda bekor qilingan. MySQLi yoki PDO dan foydalanishim kerakmi? Agar sizga qisqa javob kerak bo'lsa, bu "Sizga nima yoqsa" bo'ladi. Ham MySQLi, ham PDO o'zining afzalliklariga ega: PDO 12 xil ma'lumotlar bazasi tizimlarida ishlaydi, MySQLi esa faqat MySQL ma'lumotlar bazalari bilan ishlaydi. Shunday qilib, agar siz loyihangizni boshqa ma'lumotlar bazasidan foydalanishga o'tishingiz kerak bo'lsa, PDO bu jarayonni osonlashtiradi. Siz faqat ulanish satrini va bir nechta so'rovlarni o'zgartirishingiz kerak. MySQLi yordamida sizga to'liq kodni - so'rovlarni qayta yozishingiz kerak bo'ladi. Ikkalasi ham obyektga yo'naltirilgan, ammo MySQLi protsessual API-ni ham taklif qiladi. Ikkalasi ham tayyorlangan bayonotlarni qo'llab-quvvatlaydi. Tayyorlangan bayonotlar SQL in'ektsiyasidan himoya qiladi va veb-dastur xavfsizligi uchun juda muhimdir. Ikkala MySQLi va PDO sintaksisidagi MySQL namunalari.

  • MySQLi (ob'ektga yo'naltirilgan)
  • MySQLi (protsessual)
  • PDO
  • MySQLi-ni o'rnatish

Linux va Windows uchun: MySQLi kengaytmasi ko'p hollarda php5 mysql to'plami o'rnatilganda avtomatik ravishda o'rnatiladi. O'rnatish tafsilotlari uchun quyidagi manzilga o'ting: http://php.net/manual/en/mysqli.installation.php

PDO o'rnatilishi

O'rnatish tafsilotlari uchun quyidagi manzilga o'ting: //php.net/manual/en/mysqli.installation.php

MySQL-ga ulanishni oching

MySQL ma'lumotlar bazasidagi ma'lumotlarga kirishimizdan oldin, biz serverga ulanish imkoniyatiga ega bo'lishimiz kerak:

Misol (MySQLi ob'ektga yo'naltirilgan)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

$conn = new mysqli($servername, $username, $password);

if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Ulandi!!!";
?>

Yuqoridagi obyektga yo'naltirilgan misolga e'tibor bering:

$ connect_error PHP 5.2.9 va 5.3.0gacha buzilgan. 5.2.9 va 5.3.0 dan oldingi PHP versiyalari bilan mosligini ta'minlash kerak bo'lsa, uning o'rniga quyidagi koddan foydalaning:

<?php
$servername = "localhost";
$username = "username";
$password = "password";

$conn = mysqli_connect($servername, $username, $password);

if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Ulandi!!!";
?>

Misol (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Ulanishda xatolik: " . $e->getMessage();
}
?>

Izoh: Yuqoridagi PDO misolida biz ma'lumotlar bazasini (myDB) ham ko'rsatdik. PDO ulanish uchun haqiqiy ma'lumotlar bazasini talab qiladi. Agar ma'lumotlar bazasi ko'rsatilmagan bo'lsa, istisno qilinadi.

Maslahat: PDO-ning katta foydasi shundaki, uning ma'lumotlar bazasi so'rovlarida yuzaga kelishi mumkin bo'lgan muammolarni hal qilish uchun istisno sinfi mavjud. Agar try {} bloki ichida istisno bo'lsa, skript bajarilishini to'xtatadi va to'g'ridan-to'g'ri birinchi catch () {} blokiga oqib o'tadi.

Ulanishni yopish

Ssenariy tugagandan so'ng ulanish avtomatik ravishda yopiladi. Oldin ulanishni yopish uchun quyidagilarni ishlating. MySQLi ob'ektga yo'naltirilgan: $conn->close();

MySQLi protsessual: mysqli_close($conn);

PDO: $conn = null;

Xulosa:

Men bu maqolani Jahongir Murodboyev uchun tayyorladim. Umid qilamanki bu maqola do'stimiz xohlaganidaek bo'ldi!