Uy / O'yin konsollari / MySQL php ga ulanish 5. MySQL ma'lumotlar bazasiga ulanish. Keyinchalik progressiv protsessual uslub - mysqli-dan foydalanib ma'lumotlar bazasiga ulanish

MySQL php ga ulanish 5. MySQL ma'lumotlar bazasiga ulanish. Keyinchalik progressiv protsessual uslub - mysqli-dan foydalanib ma'lumotlar bazasiga ulanish

php dan foydalanish...

PHP da ma'lumotlar bazasi ulanishini turli usullarda yaratish:

1) MySQL-ga ulanishning eski uslubi:

$conn=mysql_connect($db_hostname, $db_username, $db_password) yoki o'lim ("Serverga ulanish yo'q");
mysql_select_db($db_database,$conn) yoki die ("Yo'q, ma'lumotlar bazasiga ulanish imkoni bo'lmadi");

Quyidagi o'zgaruvchilarning tushuntirishlari.

Quyidagi funktsiyalar qo'llaniladi:

  • mysql_connect()- serverga ulanish uchun;
  • mysql_select_db()- ma'lumotlar bazasiga ulanish uchun;

Shu bilan birga, biz doimo xatolarni shu tarzda tekshiramiz: yoki o'lamiz ("Xato shunday va shunga o'xshash"); - deb tarjima qilingan yoki falon xato bilan o'lgan - xato qaerda ekanligini darhol topish.

config.php

// ma'lumotlar bazasiga ulanish uchun o'zgaruvchilar
$host = "localhost"; /host
$username = "root"; // ma'lumotlar bazasiga ulanish uchun parol
$parol = ""; // ma'lumotlar bazasiga ulanish uchun parol - yoqilgan mahalliy kompyuter u bo'sh qiymatga ega bo'lishi mumkin.
$database_name = "mening-dolgi"; // ma'lumotlar bazasi nomi

// ma'lumotlar bazasiga ulanishning eski usuli
mysql_connect($host, $username, $parol) yoki die("Ulanishni yaratib boʻlmaydi");

// ma'lumotlar bazasini tanlang. Agar xato bo'lsa, chiqaring
mysql_select_db($database_name) yoki die(mysql_error());

index.php

require_once "config.php";


$result = mysql_query("Ismni tanlang, Pulni Dolg BY ORDER BY Money DESC LIMIT 5") yoki die(mysql_error());



";


esa ($ qator = mysql_fetch_assoc ($ natija)) (
";
}


mysql_free_result($natija);

// Ulanishni yoping
mysql_close();

2) Ko'proq progressiv protsessual uslub - mysqli-dan foydalanib ma'lumotlar bazasiga ulanish:

Bu usul:

  1. qulayroq;
  2. 40 barobar tezroq;
  3. xavfsizlikni oshirish;
  4. yangi xususiyatlar va funktsiyalar mavjud;

PHP da ma'lumotlar bazasiga jadvaldan tanlash bilan ulanishga misol

config.php

// ma'lumotlar bazasiga ulanish
$link = mysqli_connect("localhost", "foydalanuvchi nomi", "parol", "name-ma'lumotlar bazasi"); // bu erda biz sizning ma'lumotlaringizni to'g'ridan-to'g'ri kiritamiz: foydalanuvchi nomi, parol va ma'lumotlar bazasi nomi, birinchi maydon odatda localhost

// chiqish ulanishi xatosi
agar (!$link) (
echo "Ma'lumotlar bazasiga ulanishda xato. Xato kodi: " . mysqli_connect_error();
chiqish;
}

E'tibor bering - mysqli hamma joyda ishlatiladi, mysql emas!!!

index.php

require_once "config.php";

// So'rovni bajaring. Agar xato bo'lsa, biz uni ko'rsatamiz
agar ($ natija = mysqli_query($link,"Ismni tanlang, Pulni qarz BO'YICHA BO'YICHA BY Money DESC LIMIT 5")) (

Echo "Kimga qarzdorman kamayish tartibida:

";

// So'rov natijalari olinmoqda
esa ($ qator = mysqli_fetch_assoc($natija)) (
echo $row["Ism"] . "qarz bilan". $row["Pul"] . "rubl.
";
}

// ishlatilgan xotirani bo'shatish
mysqli_free_result($ natija);

// Ulanishni yoping
mysqli_close($link);
}

Ko'rib turganingizdek, ba'zi nuqtalar o'zgargan (kursivda).

3) MySQL ma'lumotlar bazasiga ulanishning ob'ektga yo'naltirilgan usuli - usullar va sinflar yordamida:

Kamchiliklari: murakkabroq va xatolarga kamroq moyil.

Taroziga soling: tajribali dasturchilar uchun qisqalik va qulaylik.

$conn = yangi mysqli($db_hostname, $db_username, $db_password, $db_ma'lumotlar bazasi);
if($conn->connect_errno)(
die($conn->connect_error);
) else (echo "Ma'lumotlar bazasiga ulanish muvaffaqiyatli o'rnatildi";)

Bu erda, qoida tariqasida, hamma narsa intuitivdir:

  • $db_hostname bu mezbon(asosan localhost),
  • $db_ma'lumotlar bazasi - db nomi;
  • $db_username va $db_password - mos ravishda foydalanuvchi nomi va parol!

Jadvaldan namuna olish bilan php OOP uslubidagi ma'lumotlar bazasiga ulanishga misol

config.php

// ma'lumotlar bazasiga ulanish
$mysqli = new mysqli("localhost", "foydalanuvchi nomi", "parol", "name-ma'lumotlar bazasi"); // bu erda biz sizning ma'lumotlaringizni to'g'ridan-to'g'ri kiritamiz: foydalanuvchi nomi, parol va ma'lumotlar bazasi nomi, birinchi maydon odatda localhost

// chiqish ulanishi xatosi
agar ($mysqli->connect_error) (
die ("JB ulanish xatosi: (" . $mysqli->connect_errno. ") " . mysqli_connect_error);
}

E'tibor bering - mysqli hamma joyda ishlatiladi, mysql emas!!! va oldingi usuldan farqli o'laroq, bu OOP uslubi ekanligini ko'rsatadigan "->" o'qlari paydo bo'ladi.

index.php

require_once "config.php";

// So'rovni bajaring. Agar xato bo'lsa, biz uni ko'rsatamiz
agar ($ natija = $ mysqli->so'rov("Ismni tanlang, pulni qarz ORDER BY Money DESC LIMIT 5")) (

Echo "Kimga qarzdorman kamayish tartibida:

";

// So'rov natijalari olinmoqda
esa ($ qator = $ natija-> fetch_assoc()) {
echo $row["Ism"] . "qarz bilan". $row["Pul"] . "rubl.
";
}

// ishlatilgan xotirani bo'shatish
$natija->yopish();

// Ulanishni yoping
$mysqli->yopish();
}

Sizning vazifangiz farqlarni topishdir.

4) PDO yordamida ma'lumotlar bazasi bilan aloqa qilish:

MySQL ma'lumotlar bazasiga ulanishda tayyorlangan ifodalar qo'llaniladi (preparat usuli yordamida) va natijada xavfsizlikni oshiradi va ishlashni sezilarli darajada oshiradi.

konfiguratsiya fayli oldingi usuldan! - xuddi shu

index.php

// MySQL bilan aloqa qilish uchun PDO uslubi
if ($stmt = $mysqli->prepare("Tanlang nomi, Voney FROM Dolg ORDER BY Money< ? LIMIT 5")) {

$stmt->bind_param("i", $summa);
$summa = 100000;

// bajarishni boshlash
$stmt->execute();

// Tayyor qiymatlar uchun o'zgaruvchilarni e'lon qilish
$stmt->bind_result($col1, $col2);

Echo "Kimga qarzdorman kamayish tartibida:

";

// So'rov natijalari olinmoqda
while ($stmt->fetch()) (
echo $col1 . "qarz bilan". $col2 . "rubl.
";
}

// ishlatilgan xotirani bo'shatish
$stmt->yopish();

// Ulanishni yoping
$mysqli->yopish();

Ko'rib turganingizdek, bu erda bu ancha murakkab va siz PDOni o'rganishingiz kerak - bu alohida mavzu.

Ushbu maqolada bugun biz ma'lumotlar bazasiga ulanishni yaratish haqida gaplashamiz va qaysi variantni protsessual yoki ob'ektga yo'naltirilgandan foydalanish yaxshiroq ekanligini muhokama qilamiz. Birinchidan, biz qaysi darajada ekanligimizni ko'rib chiqamiz, agar bu to'liq boshlang'ich darajasi bo'lsa, unda mening maslahatim, istisnosiz, ma'lumotlar bazasiga ulanishning protsessual uslubidan foydalanishni boshlashdir. Ilgari, men o'z blogimda ushbu mavzu bo'yicha maqola yozgan edim, ma'lumotlar bazasiga ulanishning protsessual uslubi haqida ko'proq ma'lumot olish uchun: "PHP yordamida MySQL-ga qanday ulanish mumkin" maqolasini o'qing. Agar siz allaqachon ma'lumotlar bazasiga ulanishning protsessual uslubi bilan ishlash tajribasiga ega bo'lsangiz, ehtimol siz men kabi mening loyihalarimni olib, ularni ob'ektga yo'naltirilgan yondashuvdan foydalanishga majbur qilgansiz.

Qanday bo'lmasin, endi biz MySQL ma'lumotlar bazasiga ulanishni yaratish uchun sinf yaratish bosqichlarini ko'rib chiqamiz. PHP tili. Bizga ikkita PHP fayli kerak bo'ladi, bitta faylda biz ma'lumotlar bazasiga ulanish uchun sinfni "qo'yamiz", ikkinchisida esa ushbu sinf bilan ishlaymiz.

Keling, ikkita fayl yarataylik:

  • index.php;
  • database.class.php;

Menimcha, biz endi kichkina bolalar emasmiz va PHP fayllari bilan ishlash uchun nima kerakligini bilamiz. O'rnatilgan veb-server bu Apache, PHP, MySQL DBMS bo'lib, bu fayllarni qaerga qo'yishni biladi - (bilmagan yoki unutganlar uchun).

Men sinf saqlanadigan faylni alohida faylga joylashtiraman va uni formatda nomlayman: class name.class.php va men bu faylda nima saqlanganligini bilaman. Loyihada ko'plab sinflar mavjud bo'lganda, siz adashib qolishingiz mumkin, shuning uchun men fayllarni yuqorida tavsiflangan formatda sinflar bilan nomlashni tavsiya qilaman.

Database.class.php fayli:

Keling, ushbu bosqichda nima yaratilganini ko'rib chiqaylik. "Klass" kalit so'zidan, sinf nomi - DataBase va jingalak qavslardan foydalanib, biz sinfning tanasini yaratdik. Yaratilgan sinfda biz ikkita xususiyat yaratdik, $mConnect da - bu erda ma'lumotlar bazasiga ulanish natijasi saqlanadi va $mSelectDB - bu erda ma'lumotlar bazasini tanlash natijasi saqlanadi. Siz har bir xususiyatdagi kalit so'zlarga e'tibor bergan bo'lishingiz mumkin - ommaviy va statik. Ular nima haqida gaplashmoqda? Ommaviy xususiyatga sinfdan tashqarida kirish mumkinligini bildiradi va statik xususiyat sinfning namunasini yaratmasdan kirish yoki qo'ng'iroq qilish imkonini beradi, bu ishda juda qulaydir.

Keling, ma'lumotlar bazasiga ulanishni yaratish uchun Connect() usulini qo'shamiz:

".mysql_error()."

"; exit(); return false; ) // Natijani qaytaring self::$mConnect; ) ) ?>

  • $host - server IP-manzili, mahalliy shaxsiy kompyuterda bu localhost;
  • foydalanuvchi - ma'lumotlar bazasi foydalanuvchi nomi;
  • $pass - ma'lumotlar bazasi foydalanuvchisi paroli;
  • $name - biz ulanadigan ma'lumotlar bazasi nomi;

Mysql_connect() funktsiyasi ma'lumotlar bazasiga ulanishni yaratadi va bajarilish natijasini $mConnect-da saqlaydi. Keyinchalik IF konstruktsiyasi bilan tekshirish keladi: Agar ulanish muvaffaqiyatli bo'lmasa, xato xabarini ko'rsating... Aks holda, PHP IF blokini e'tiborsiz qoldiradi va ma'lumotlar bazasini tanlashga o'tadi. Mysql_select_db() funktsiyasi ma'lumotlar bazasi nomini tanlaydi, agar so'ralgan ma'lumotlar bazasi ma'lumotlar bazasida mavjud bo'lmasa, bu holda dastur foydalanuvchiga xato haqida xabar beradi. Agar hamma narsa muvaffaqiyatli bo'lsa, ma'lumotlar bazasi ulanishi qaytib keladi.

Close() usulini qo'shing:

Kechirasiz, biz MySQL serveriga ulana olmadik

"; exit(); return false; ) // Ma'lumotlar bazasini tanlashga urinib ko'ring self::$mSelectDB = mysql_select_db($name, self::$mConnect); // Agar ma'lumotlar bazasi tanlanmagan bo'lsa, xato xabarini ko'rsating.. if( !self::$mSelectDB) ( echo "

".mysql_error()."

"; exit(); return false; ) // Natijani qaytaring self::$mConnect; ) // Usul ma'lumotlar bazasiga ulanishni umumiy statik funksiya Close() ( // Natijani qaytaradi mysql_close(self:) :$mConnect) ) ) ?>

Bu sinfdagi keyingi va oxirgi usul Close() maʼlumotlar bazasiga ulanishni yopadi mysql_close() funksiyasi MySQL serveriga ulanishni yopadi va natijani qaytaradi.

Index.php fayli:

Define() funktsiyasidan foydalanib, biz ma'lumotlar bazasiga ulanish parametrlarini saqlash uchun konstantalar yaratdik. Require_once index.php faylida bizning DataBase sinfimizni o'z ichiga oladi.

Keling, ushbu klassning xossalari va usullarida DataBase sinfida ishlatilgan statik kalit so'zni eslaylik. Bu bizga "::" (ikki nuqta) yordamida sinf xususiyatlari va usullariga kirish imkoniyatini beradi. DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE) usuli 4 ta parametrni oladi - define() funksiyasi tomonidan yaratilgan konstantalar, ular ma’lumotlar bazasiga ulanish haqidagi ma’lumotlarni saqlaydi. Agar ulanish muvaffaqiyatli bo'lsa, Connect() usuli bizga ma'lumotlar bazasi ulanishini qaytaradi. Keyinchalik, biz ma'lumotlar bazasiga so'rovlarni bajarishimiz va bajarishimiz mumkin. mysql_query() funktsiyasi - ma'lumotlar bazasiga so'rovni bajaradi. Mysql_fetch_assoc() funktsiyasi bir qator so'rov natijalarini qayta ishlaydi va assotsiativ massivni qaytaradi. Echo konstruktsiyasi MySQL server versiyasini ko'rsatadi. Va nihoyat, DataBase::Close() usuli ma’lumotlar bazasiga ulanishni yopadi.

Savol yangi boshlanuvchilar orasida juda mashhur va bunga alohida maqola bag'ishlamaslik noto'g'ri. PHP yordamida ma'lumotlar bazasi ulanishini qanday yaratish mumkin? Men darhol aytaman PHP vositalari ma'lumotlar bazalari bilan to'liq ishlash va MySQL bilan o'zaro ishlash uchun etarli. Endi ulanishga harakat qilaylik!

PHP ni MySQL ga ulash uchun nima kerak?

1. DBMS o'rnatildi va ishchi ma'lumotlar bazasi yaratildi. Masalan, MySQL da (DBMS va MySQL nima?).
2. Hisob tegishli huquqlarga ega MySQL foydalanuvchisi (MySQLda qanday huquqlar va imtiyozlar mavjud?)
3. Shunga ko'ra, PHP o'rnatilgan server

Agar siz ushbu bosqichlardan birini bajarmasangiz, ulana olmaysiz.

PHP va MySQL o'rtasidagi o'zaro ta'sir qilish algoritmi

1. Ma'lumotlar bazasiga ulanish
2. So'rov yuborish va natijani olish
3. (Afzal) Ulanishni yopish

Endi biz PHP yordamida ma'lumotlar bazasiga ulanamiz:

PHP kodi

$db = mysql_connect("localhost", "Admin", "o'tish"); // foydalanuvchi ma'lumotlari
mysql_select_db("baseName",$db); // qaysi ma'lumotlar bazasiga ulanishni tanlang
?>
Ko'rib turganingizdek, ulanish uchun to'rtta parametr ko'rsatilgan:

1. Xost nomi. Ko'p hollarda localhostni ko'rsatish kifoya (xuddi shu xostingda).
2. MySQL-dan foydalanish uchun ro'yxatdan o'tgan foydalanuvchining ismi.
3. MySQL-dan foydalanish uchun ro'yxatdan o'tgan foydalanuvchining paroli.
4. Biz ulanmoqchi bo'lgan ma'lumotlar bazasi nomi. Shunga ko'ra, biz ko'rsatgan foydalanuvchi ushbu ma'lumotlar bazasida ishlash huquqiga ega bo'lishi kerak.

Natijada, agar biror narsa noto'g'ri ko'rsatilgan bo'lsa, unda hech qanday jinoyat sodir bo'lmaydi, lekin siz xatoni ko'rasiz. Ammo optimist bo'laylik, deylik, siz hamma narsani to'g'ri kiritdingiz.

Boshqa ulanish turi:

PHP kodi

$host="localhost"; /*xost*/
$user="admin"; /*Foydalanuvchi nomi*/
$parol = "12345"; /*Foydalanuvchi paroli*/
$db="baseName"; /*Ma’lumotlar bazasi nomi*/

Mysql_connect($host, $user, $parol); /*Serverga ulanish*/
mysql_select_db($db); /*Serverdagi maʼlumotlar bazasiga ulanish*/
?>
Bu erda men foydalanuvchi va xost uchun misol ma'lumotlari bilan o'zgaruvchilarni vizual tarzda yarataman va keyin ulanishni yarataman.

PHP da ma'lumotlar bazasiga ulanishni qanday uzish (yopish) mumkin?

Ulanish ma'lumotlari noto'g'ri ko'rsatilgan holatlar mavjud. Bunday holda, skript qayta ishlashni davom ettiradi PHP fayli va sahifada ma'lum miqdordagi xato va ogohlantirishlarni ishlab chiqaradi. Bunday holatlar uchun ma'lumotlar bazasiga ulanishda xato ishlov beruvchisidan foydalanishni taklif qilaman. Agar ulanish muvaffaqiyatsiz bo'lsa, siz muammoning qaysi bosqichida ekanligini ko'rsatadigan ogohlantirish olasiz:

PHP kodi

$user="admin";
$parol = "12345";
$db="baseName";

// agar xatolik yuz bergan bo'lsa
mysql_connect($host, $user, $password) or die("MySQL serveri mavjud emas!".mysql_error());
mysql_select_db($db) or die("Ma'lumotlar bazasiga ulanish yo'q."mysql_error());
?>
Bundan tashqari, stsenariyni ishlab chiqish to'xtab qolishi juda muhim, bu sizni juda ko'p noto'g'ri ma'lumotlardan qutqaradi.

Tabriklaymiz! Endi siz PHP da ma'lumotlar bazasiga qanday ulanishni va ulanishni yopishni bilasiz!

E'tiboringiz uchun rahmat!

Kod misollari bilan PHP bilan MySQL-ga ulanishning 3 usuli


MySQL ma'lumotlar bazasidan foydalanishni boshlash uchun, avvalo, o'zingizning shaxsiy PHP dasturidan (skript) ushbu MySQL ma'lumotlar bazasiga qanday ulanishni tushunishingiz kerak.

Ushbu maqolada PHP-dan ma'lumotlar bazasiga qanday ulanishni tushuntiruvchi tegishli PHP kod misollari bilan birga quyidagi uchta usul tasvirlangan.

Quyidagi barcha misollar uchun biz mavjud MySQL ma'lumotlar bazasiga ulanamiz. Eslatma: Bu yerda tushuntirilgan hamma narsa MySQL kabi MariaDB bilan ham ishlaydi.

1. Mysqli kengaytmasi yordamida PHP ga ulanish
*mysqli MySQL yaxshilangan degan ma'noni anglatadi

Quyidagi mysqli.php faylini yarating

connect_error) ( die("Xato: ulanib bo'lmadi: " . $conn->connect_error); ) echo "Ma'lumotlar bazasiga ulangan.
"; $result = $conn->query("SELECT id FROM goroda"); echo "Qatorlar soni: $result->num_rows"; $result->close(); $conn->close(); ?> Yuqoridagi kodda:

  • mysqli - Bu funksiya mysqli kengaytmasi yordamida yangi ulanishni boshlaydi. Funktsiya to'rtta argumentni oladi:
    1. localhost - MySQL ma'lumotlar bazasi ishlayotgan xostning nomi
    2. nom - ulanish uchun MySQL foydalanuvchi nomi
    3. pass - mysql foydalanuvchisi uchun parol
    4. db - ulanish uchun MySQL ma'lumotlar bazasi.
  • qvery MySQL so'rovi funktsiyasidir. Ushbu misolda biz shahar ma'lumotlar bazasidan id ustunini tanlaymiz.
  • Nihoyat, natijada num_rows o'zgaruvchisi yordamida tanlangan qatorlar sonini ko'rsatamiz. Bundan tashqari, yuqorida ko'rsatilgandek natijani ham, ulanish o'zgaruvchisini ham yopamiz.
Brauzeringizdan yuqoridagi mysqli.php ga qo'ng'iroq qilganingizda, PHP MySQL ma'lumotlar bazasiga ulanishi va ma'lumotlarni olishi mumkinligini ko'rsatadigan quyidagi natijani ko'rasiz.

Ma'lumotlar bazasiga ulangan. Qatorlar soni: 6 2. PHP MySQL PDO kengaytmasidan ulanish
*PDO qisqartmasi PHP Data Objects degan ma'noni anglatadi

PDO_MYSQL drayveri PHP skriptingizdan MySQL ma'lumotlar bazasiga ulanish uchun PHP tomonidan taqdim etilgan PDO interfeysini amalga oshiradi.

Quyidagi mysql-pdo.php faylini yarating:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Ma'lumotlar bazasiga ulangan.
"; $sql = "Tanlash id FROM goroda"; chop "Identifikator ro'yxati:
"; foreach ($conn->query($sql) $ qator sifatida) ( $row["id"] ni chop eting."

  • "; ) $conn = null; ) catch(PDOException $err) ( echo "Xato: Ulanib boʻlmadi: " . $err->getMessage(); ) ?> Yuqorida:
    1. yangi PDO - quyidagi uchta argumentni oladigan yangi PDO ob'ektini yaratadi:
    2. mysql ulanish qatori: u “mysql:host=localhost;dbname=db” formatida bo'ladi. Yuqoridagi misolda JB localhost-da ishlamoqda va biz JB ma'lumotlar bazasiga ulanyapmiz.
    3. Ulanish uchun MySQL foydalanuvchi nomi
  • Mysql foydalanuvchi paroli
  • $sql o'zgaruvchisi - bajarmoqchi bo'lgan sql so'rovini yarating. Ushbu misolda biz shaharlar jadvalidan id ustunini tanlaymiz.
  • so'rov ($sql). Bu erda biz hozirgina yaratgan sql so'rovini bajarmoqdamiz.
  • foreach. Bu erda biz yuqoridagi so'rov buyrug'i natijasini aylantiramiz va uni $row o'zgaruvchisida saqlaymiz va keyin uni echo yordamida chiqaramiz.
MySQL PDO da ulanishni yopish uchun $conn o'zgaruvchisini null ga o'rnating.

Yuqoridagi mysqli.php skriptini brauzeringizdan chaqirganingizda quyidagi qatorlarni ko'rasiz; ular PHP MySQL ma'lumotlar bazasiga ulanishi va ma'lumotlarni olishi mumkinligini anglatadi: Ma'lumotlar bazasiga ulangan. Roʻyxat identifikatori: 1 2 3 4 5 6

3. Eskirgan mysql funksiyalari yordamida PHP dan ulanish Ushbu usuldan faqat ko'proq foydalansangiz foydalaning eski versiya PHP va ba'zi sabablarga ko'ra uni yangilay olmaysiz yangi versiya

Ushbu kengaytma PHP 5.5 dan beri eskirgan. Ammo PHP 7.0 dan boshlab, u olib tashlanganidan beri bu ishlamaydi. PHP 5.5 dan boshlab, ushbu funksiyalardan foydalanganda, u E_DEPRECATED xatosini keltirib chiqaradi.

mysql.php faylini yarating:

"; $natija = mysql_query("Tanlash id FROM goroda"); $row = mysql_fetch_row($result); echo "id 1: ", $satr, "
\n"; mysql_close($conn); ?> Yuqorida:

  • Mysql_connect funktsiyasi uchta argumentni oladi:
    1. MySQL ma'lumotlar bazasi ishlayotgan xost nomi;
    2. Ulanish uchun MySQL foydalanuvchi nomi;
    3. mysql foydalanuvchisi uchun parol. Bu yerda u foydalanuvchi nomi va uning parolidan foydalangan holda mahalliy serverda ishlaydigan MySQL ma'lumotlar bazasiga ulanadi.
  • mysql_select_db funktsiyasi. Nomidan ko'rinib turibdiki, u siz ulanishni xohlagan ma'lumotlar bazasini tanlaydi. "Foydalanish" buyrug'iga teng. Ushbu misolda biz JB ma'lumotlar bazasiga ulanamiz.
  • mysql_query funktsiyasi - MySQL so'rovingizni belgilash uchun ishlatiladi. Ushbu misolda biz shahar ma'lumotlar bazasidan id ustunini tanlaymiz.
  • mysql_fetch_row. Biz yaratgan SQL so'rovidan qatorlarni chiqarish uchun ushbu funksiyadan foydalaning.
  • Nihoyat, yuqorida ko'rsatilganidek, mysql_close buyrug'i yordamida ulanishni yoping.
Brauzeringizdan yuqoridagi mysql-legacy.php ga qo'ng'iroq qilganingizda, PHP MySQL ma'lumotlar bazasiga ulanishi va ma'lumotlarni olish imkoniga ega ekanligini ko'rsatadigan quyidagi natijani ko'rasiz:

Ma'lumotlar bazasiga ulangan. id 1: 1 MySQL-ga shu tarzda ulanishingiz mumkin. Takror aytaman, birinchi ikkita usuldan foydalanish yaxshiroqdir; O

MySQL ma'lumotlar bazasidan maksimal darajada foydalanish uchun maxsus PHP dasturidan MySQL ma'lumotlar bazasiga qanday ulanishni tushunish muhimdir.

Ushbu o'quv qo'llanma quyidagi uchta usulni va PHP yordamida ma'lumotlar bazasiga qanday ulanishni tushuntirib beradigan mos keladigan PHP misol dasturini tavsiflaydi.

  • Mysqli kengaytmasi yordamida ulanish (tavsiya etiladi)
  • PDO yordamida ulanish (tavsiya etiladi)
  • An'anaviy eski mysql_ funksiyalari yordamida ulanish (eskirgan)

Buning uchun siz PHP-MySQL paketini o'rnatishingiz kerak.

RedHat taqsimotiga asoslanib, quyida ko'rsatilganidek, PHP-MySQL-ni o'rnatish uchun yum-dan foydalaning.

Yum php-mysql-ni o'rnating

Tizimingizga qarab, biz yuqoridagi quyidagi bog'liqliklarni o'rnatamiz yoki yangilaymiz:

  • php-cli
  • php-umumiy
  • php-pdo
  • php-pgsql

Hamma narsa o'rnatilgandan so'ng, phpinfo sahifasida MySQL moduli quyida ko'rsatilganidek ko'rsatiladi:

Quyida keltirilgan barcha misollar uchun biz allaqachon mavjud MySQL ma'lumotlar bazasiga ulanamiz. Agar siz MySQL-da yangi bo'lsangiz, bu boshlash uchun yaxshi joy: .

Eslatma: Bu yerda tasvirlangan hamma narsa MySQL bilan ishlagani kabi MariaDB bilan ham ishlaydi.

1. Mysqli kengaytmasi yordamida PHP da ulanish

MySQLi MySQL yaxshilangan degan ma'noni anglatadi.

Shuni esda tutingki, ko'pgina tarqatishlarda (masalan: CentOS) PHP-MySQLi allaqachon PHP-MySQL paketining bir qismidir. Shunday qilib, siz PHP-MySQLi paketini qidirishingiz va o'rnatishingiz shart emas. Tizimingizda ishlaydigan Mysqli kengaytmasini olish uchun PHP-MySQL paketini oʻrnatish kifoya.

Apache-da DocumentRoot-da quyidagi mysqli.php faylini yarating:

connect_error) ( die("Xato: Ulanib bo‘lmadi: " . $conn->connect_error); ) echo "Ma'lumotlar bazasiga ulanish.
"; $natija = $conn->query("Xodimdan nomini tanlang"); echo "Qatorlar soni: $result->num_rows"; $result->close(); $conn->close(); ?>

Yuqoridagilarda:

  • MySQLi - Ushbu funktsiya Mysqli kengaytmasi yordamida yangi ulanishni boshlaydi. Ushbu funktsiya to'rtta argumentni oladi:
    1. MySQL ma'lumotlar bazasi ishlayotgan xost nomi
    2. MySQL ulanishi uchun foydalanuvchi nomi
    3. Ulanish uchun MySQL foydalanuvchi nomi
    4. Ulanish uchun MySQL ma'lumotlar bazasi.
  • So'rov funktsiyasi - MySQL so'rovingizni belgilash uchun undan foydalaning. Ushbu misolda biz xodimlar ma'lumotlar bazasidan nom ustunini tanlaymiz.
  • Nihoyat, num_rows o'zgaruvchisi yordamida tanlangan qatorlar sonini ko'rsatamiz. Yuqorida ko'rsatilganidek, ulanishni ham yopamiz.

Ma'lumotlar bazasiga ulaning. Qatorlar soni: 4

Eslatma: Agar siz masofaviy MySQL ma'lumotlar bazasiga ulanishga harakat qilmoqchi bo'lsangiz, host ulanishi rad etilgan xatosidan qochish uchun buni qilishingiz mumkin: MySQL mijoziga masofaviy MySQL serveriga ulanishga qanday ruxsat berish kerak.

2. PHP yordamida MySQL-ga PDO kengaytmali ulanish

PDO qisqartmasi PHP Data Objects degan ma'noni anglatadi.

PDO_MYSQL dasturni MySQL ma'lumotlar bazasiga ulash uchun PHP tomonidan taqdim etilgan PDO interfeysini amalga oshiradi.

Ko'pgina Linux distributivlarida (masalan, CentOS va RedHat) PHP-PDO paketi allaqachon PHP-MySQL paketiga kiritilgan. Shunday qilib, PHP-PDO paketini qidirib o'rnatishingiz shart emas. Tizimingizda ishlaydigan PDO_MYSQL PHP kengaytmasini olish uchun PHP-MySQL paketini oʻrnatish kifoya.

Apache DocumentRoot-da quyidagi MySQL-pdo.php faylini yarating:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Ma'lumotlar bazasiga ulanish.
"; foreach ($conn->query($sql) $ qator sifatida) ( $row["name"] ni chop eting."
"; ) $conn = null; ) catch(PDOException $err) ( echo "Xato: Ulanib boʻlmadi: " . $err->getMessage(); ) ?>

Yuqoridagilarda:

  • yangi PDO - Quyidagi uchta argumentni oladigan yangi PDO ob'ektini yaratadi:
    1. MySQL ulanish qatori: “mysql:host=$hostname;dbname=$dbname” formatida bo‘ladi. Yuqoridagi misolda ma'lumotlar bazasi localhost-da ishlamoqda va biz andreyex ma'lumotlar bazasiga ulanyapmiz.
    2. MySQL-ga ulanish uchun foydalanuvchi nomi.
    3. Mysql foydalanuvchi uchun parol.
  • $sql o'zgaruvchisi - yaratish SQL so'rovi siz amalga oshirmoqchi bo'lgan. Ushbu misolda biz xodimlar jadvalidan nom ustunini tanlaymiz.
  • query($sql) – bu yerda biz yaratgan SQL so‘rovini bajaramiz.
  • foreach - bu erda biz yuqoridagi buyruqlarni bajaramiz va ularni saqlaymiz o'zgaruvchan qator$ va keyin ularni chop etish buyrug'i yordamida ko'rsatamiz.
  • MySQL PDO-da ulanishni yopish uchun $conn o'zgaruvchisini nolga qaytarish kifoya.

Brauzeringizdan mysqli.php ga qo'ng'iroq qilganingizda, PHP MySQL ma'lumotlar bazasiga ulanishi va ma'lumotlarni olishga qodirligini ko'rsatadigan quyidagi natijani ko'rasiz.

Ma'lumotlar bazasiga ulaning. Xodimning ismi: siteslan Mariya Oleg

3. PHP da mysql_ funksiyalari yordamida ulanish (eskirgan)

Ushbu usuldan faqat PHP ning eski versiyasidan foydalanayotgan bo'lsangiz va biron sababga ko'ra yangi versiyaga o'ta olmasangiz foydalaning.

Bu eski PHP 5.5 kengaytmasi. Ammo PHP 7.0 versiyasidan boshlab, u olib tashlanganidan beri bu ishlamaydi.

PHP 5.5 dan boshlab, ushbu funksiyalardan foydalanganda ular E_DEPRECATED xatosini hosil qiladi.

Apache DocumentRoot ostida quyidagi MySQL-legacy.php faylini yarating:

"; $natija = mysql_query("Xodimdan nomini tanlang"); $row = mysql_fetch_row($result); echo "Xodim 1: ", $satr, "
\n"; mysql_close($conn); ?>

Yuqoridagilarda:

  • Mysql_connect funktsiyasi uchta argumentni oladi: 1) MySQL ma'lumotlar bazasi ishlayotgan xost nomi, 2) MySQL-ga ulanish uchun foydalanuvchi nomi, 3) MySQL foydalanuvchisi uchun parol. Bu erda biz mahalliy serverda ishlaydigan MySQL ma'lumotlar bazasiga root foydalanuvchi nomi va uning parolidan foydalanib ulanamiz.
  • mysql_select_db funktsiyasi - Nomidan ko'rinib turibdiki, siz ulanmoqchi bo'lgan ma'lumotlar bazasini tanlaydi. Bu "foydalanish" buyrug'iga teng. Ushbu misolda biz andreyex ma'lumotlar bazasiga ulanamiz.
  • mysql_query funktsiyasi - MySQL so'rovingizni belgilash uchun bundan foydalaning. Ushbu misolda biz xodimlar ma'lumotlar bazasidan nom ustunini tanlaymiz.
  • mysql_fetch_row - Biz yaratgan SQL so'rovidan qatorlarni olish uchun ushbu funksiyadan foydalaning.
  • Nihoyat, yuqorida ko'rsatilganidek, mysql_close buyrug'i yordamida ulanishni yoping.

Brauzeringizdan MySQL-legacy.php ga qo'ng'iroq qilganingizda, PHP MySQL ma'lumotlar bazasiga ulanishi va ma'lumotlarni olishi mumkinligini ko'rsatadigan quyidagi natijani ko'rasiz.

Ma'lumotlar bazasiga ulaning. 1-xodim: AndreyEx