PHP MySQL’ga ulanish
PHP ni MySQL ga ulash
PHP MySQL ma’lumotlar bazalari bilan ishlash uchun ikkita asosiy kengaytmani qo‘llab-quvvatlaydi:
- MySQLi (MySQL Improved)
- PDO (PHP Data Objects)
MySQLi yoki PDO dan foydalanishim kerakmi?
Agar sizga qisqa javob kerak bo‘lsa, u "Sizga yoqadigan narsa" bo‘ladi.
MySQLi ham, PDO ham o‘zlarining 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‘tkazishingiz kerak bo‘lsa, PDO jarayonni osonlashtiradi. Siz faqat ulanish stringini va bir nechta so‘rovlarni o‘zgartirishingiz kerak. MySQLi bilan siz butun kodni qayta yozishingiz kerak bo‘ladi - so‘rovlar kiritilgan.
Ikkalasi ham obyektga yo‘naltirilgan, ammo MySQLi protsessual APIni ham taklif qiladi.
Ikkalasi ham Tayyorlangan operatorlarni qo‘llab-quvvatlaydi. Tayyorlangan operatorlar SQL in’ektsiyasidan himoya qiladi va veb-ilovalar xavfsizligi uchun muhimdir.
MySQLi va PDO sintaksisida MySQL misollari
Bu va keyingi boblarda biz PHP va MySQL bilan ishlashning uchta usulini ko‘rsatamiz:
- MySQLi (object-oriented)
- MySQLi (procedural)
- PDO
MySQLi o‘rnatish
Linux va Windows uchun: MySQLi kengaytmasi ko‘p hollarda php MySQL paketi o‘rnatilganda avtomatik ravishda o‘rnatiladi.
O‘rnatish tafsilotlari uchun quyidagi manzilga o‘ting: http://php.net/manual/en/mysqli.installation.php
PDO o‘rnatish
O‘rnatish tafsilotlari uchun quyidagi manzilga o‘ting: http://php.net/manual/en/pdo.installation.php
MySQL-ga ulanishni oching
MySQL ma’lumotlar bazasidagi ma’lumotlarga kirishdan oldin biz serverga ulanish imkoniyatiga ega bo‘lishimiz kerak.
Ulanish odatda to‘rtta ma’lumotni talab qiladi: server nomi, foydalanuvchi nomi, parol va ma’lumotlar bazasi nomi:
Misol - MySQLi obyektga yo‘naltirilgan
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "mydb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
Misol - MySQLi protsessual
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "mydb";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
Misol - PDO
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "mydb";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Maslahat: PDO ning katta afzalligi shundaki, u bizning ma’lumotlar bazasi so‘rovlarida yuzaga kelishi mumkin bo‘lgan har qanday muammolarni hal qilish uchun istisno classiga ega. Agar try{ } blokida istisno qilinsa, skript ishlashni to‘xtatadi va to‘g‘ridan-to‘g‘ri birinchi catch(){ } blokiga o‘tadi.
MySQL-ga ulanishni yoping
Skript tugashi bilan ulanish avtomatik ravishda yopiladi. Avval ulanishni yopish uchun quyidagilarni foydalaning:
Misol - MySQLi obyektga yo‘naltirilgan:
$conn->close();
Misol - MySQLi protsedurasi:
mysqli_close($conn);
Misol - PDO:
$conn = null;
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
