Ma'lumotlar bazasiga ulanish PDO sinfining namunasi yaratilganda o'rnatiladi. Qaysi drayverni ishlatmoqchi ekanligingiz muhim emas; Siz har doim PDO sinfidan foydalanishingiz kerak bo'ladi. Uning konstruktori ma'lumotlar bazasining manbasini (DSN deb nomlanadi) va foydalanuvchi nomi va parol uchun ixtiyoriy parametrlarni aniqlash uchun parametrlarni qabul qiladi.
MySQL-ga ulanish:
$ dbh \u003d yangi PDO ("mysql: host \u003d localhost; dbname \u003d test", $ foydalanuvchi, $ pass);
Agar ulanishda biron bir xatolik yuzaga kelsa, istisno tashlanadi: PDOException sinf ob'ekti. Agar siz ushbu vaziyatni hal qilmoqchi bo'lsangiz, uni qo'lga kiritishingiz mumkin yoki uni set_exception_handler () orqali o'rnatiladigan global istisnosiz ishlov beruvchiga qo'yishingiz mumkin.
Ulanishda xatolik yuz berdi:
sinab ko'rish ($ dbh \u003d yangi PDO ("mysql: host \u003d localhost; dbname \u003d test", $ user, $ pass); oldingi ($ dbh-\u003e so'rov ("SELECT * FOO ') $ qatorida) (print_r ($ qator);) $ dbh \u003d null;) catch (PDOException $ e) (die ("Xato! Bu shunday bo'ldi. Yetib keldi ...". $ e-\u003e getMessage ());)
Diqqat: Agar siz PDO konstruktori tomonidan tashlangan istisnoni ushlamasangiz, zend dvigateli tomonidan bajarilgan standart harakat skriptni to'xtatishi va izni ko'rsatishi kerak. Ushbu ma'lumotlar bazasi bilan bog'lanishning barcha samimiy tafsilotlarini bilib olasiz. Ya'ni ma'lumotlar bazasi ulanishining batafsil ma'lumotlarini, jumladan foydalanuvchi nomi va parolini ko'rsatadi!Ushbu istisnoni aniq yoki ochiq tarzda (bayonot orqali) olish vijdoningizga qo'lga olishga harakat qiling) yoki aniq ravishda set_exception_handler () orqali.
Ma'lumotlar bazasiga muvaffaqiyatli ulangandan so'ng, u PDO misolida butun umr davomida faol bo'lib qoladi. Ulanishni yopish uchun siz ob'ekti yo'q qilishingiz kerak, unga ulangan barcha havolalar o'chirilishini ta'minlash kerak - buni ob'ektni o'z ichiga olgan o'zgaruvchiga NULL qiymat berish orqali qilishingiz mumkin. Agar siz buni aniq qilmasangiz, unda skript chiqishi bilan PHP avtomatik ravishda ulanishni to'xtatadi.
Ulanishning yopilishi:
$ dbh \u003d yangi PDO ("mysql: host \u003d localhost; dbname \u003d test", $ foydalanuvchi, $ pass); // Mana, biz bir narsa qilyapmiz: ... // Endi diqqat: aloqaning tugashi! $ dbh \u003d nol;
Ko'pgina veb-dasturlar ma'lumotlar bazasi serverlariga doimiy ulanishlarni yaratishda foyda keltiradi. Skript chiqishi bilan doimiy ulanishlar yopilmaydi, lekin boshqa skript ulanish uchun bir xil hisob ma'lumotlarini ishlatib ulanishni talab qilganda saqlanadi va qayta ishlatiladi. Doimiy ulanish keshi har safar skriptni ma'lumotlar bazasi bilan aloqa o'rnatishi kerak bo'lgan yangi ulanishni o'rnatishdan qochadi, natijada veb-ilovalar tezroq ishlaydi.
Doimiy aloqa o'rnatish:
$ dbh \u003d yangi PDO ("mysql: host \u003d localhost; dbname \u003d test", $ foydalanuvchi, $ pass, array (PDO :: ATTR_PERSISTENT \u003d\u003e haqiqiy));
Do'stlaringiz bilan baham: |