Pdouchun stsenariy hisoblanadi php ma'lumotlar ob'ektlari



Download 51,61 Kb.
bet5/6
Sana30.12.2021
Hajmi51,61 Kb.
#194829
1   2   3   4   5   6
Bog'liq
Pdo mysql misollari

O'chirish  Olib tashlash eng oddiy usulda amalga oshiriladi:

   $ db-\u003e exec ("foydalanuvchilarni o'chirish");

Albatta, siz o'chirayotganda nomlangan to'ldiruvchilardan ham foydalanishingiz mumkin.

Agar sizda PHP PDO kengaytmasi bilan ishlaganda tez-tez ishlatiladigan ish qismlaringiz bo'lsa, ularni ulashsangiz juda minnatdorman. Qo'l bilan havola

Agar siz Aniqlanmagan o'zgaruvchiga duch kelsangiz: DBH ... unda siz uni qanday tuzatish to'g'risida o'qishingiz mumkin.

Google PDO firibgar varaqasini topishga yordam berdi, ehtimol kimdir yordam berishi mumkin: 

PDO o'zining shaxsiy ulanish usuliga ega, deb nomlangan. Bundan tashqari, ulanish paytida siz la'natlangan bulutni so'rashingiz mumkin, ulardan ba'zilari juda foydali. To'liq ro'yxatni topish mumkin, ammo faqat bir nechtasi muhimdir.

To'g'ri ulanish misoli:

  $ host \u003d "127.0.0.1";
$ db \u003d "sinov";
$ user \u003d "root";
$ pass \u003d "";
$ charset \u003d "utf8";

  $ dsn \u003d "mysql: host \u003d $ host; dbname \u003d $ db; charset \u003d $ charset";


$ opt \u003d [
PDO :: ATTR_ERRMODE \u003d\u003e PDO :: ERRMODE_EXCEPTION,
PDO :: ATTR_DEFAULT_FETCH_MODE \u003d\u003e PDO :: FETCH_ASSOC,
PDO :: ATTR_EMULATE_PREPARES \u003d\u003e noto'g'ri,
];
$ pdo \u003d yangi PDO ($ dsn, $ user, $ pass, $ opt);

Bu erda nima bo'lyapti?

$ Dsn biz (mysql), host, ma'lumotlar bazasi nomi va char bilan ishlaydigan ma'lumotlar bazasining turini belgilaydi.
  - keyin foydalanuvchi nomi va parolga o'ting
- shundan so'ng qo'llanmalarning hech biri yozmagan bir qator variantlar belgilanadi.

Ushbu qator yuqorida aytib o'tilganidek, juda foydali ekanligiga qaramay. Eng muhimi, xato rejimi faqat istisnolar sifatida o'rnatilishi kerak.


  - Birinchidan, chunki boshqa barcha rejimlarda PDO biron bir aniq xato haqida xabar bermaydi,
  ikkinchidan, istisno har doim ajralmas suyak izini o'z ichiga olganligi sababli,
  - uchinchidan - istisnolarni hal qilish juda qulay.

Bundan tashqari, FETCH_MODE-ni sukut bo'yicha o'rnatish juda qulay, chunki uni har bir so'rovda yozmaslik, tirishqoq hamsterlar qilishni yaxshi ko'radi.


  Bu erda siz pconnect rejimini, tayyorlangan iboralarni taqlidini va boshqa ko'plab qo'rqinchli so'zlarni ham o'rnatishingiz mumkin.

Natijada $ pdo o'zgaruvchisiga ega bo'lamiz va biz skript davomida yanada ko'proq ishlaymiz.

So'rovlarni bajarish uchun ikkita usuldan foydalanishingiz mumkin.
  Agar so'rovga hech qanday o'zgaruvchilar kirmasa, unda siz so'rov () funktsiyasidan foydalanishingiz mumkin. Bu so'rovni bajaradi va maxsus ob'ektni - PDO bayonotini qaytaradi. Siz uni mysql_query () ni qaytargan mysql manbai bilan taqqoslashingiz mumkin. Siz ushbu ob'ektdan ma'lumotni an'anaviy usulda ham, vaqt bilan ham, oldin () orqali ham olishingiz mumkin. Qabul qilingan ma'lumotlarni quyida tavsiflangan maxsus formatda qaytarishni so'rashingiz mumkin.
$ stmt \u003d $ pdo -\u003e so'rov ("FROM foydalanuvchilarni SELECT");
while ($ row \u003d $ stmt -\u003e olish ())
{
}

Agar so'rovga kamida bitta o'zgaruvchi topshirilgan bo'lsa, unda bu so'rov faqat orqali bajarilishi kerak tayyorlangan iboralar. Bu nima? Bu odatiy SQL so'rovidir, unda o'zgaruvchilar o'rniga maxsus marker joylashtiriladi - to'ldiruvchi. PDO uzatilayotgan o'zgaruvchilarning tartibi muhim bo'lgan va ((nom)) joylashtirilgan to'ldirish o'rnini to'ldiruvchilarni qo'llab-quvvatlaydi. Misollar:


$ sql \u003d;
$ sql \u003d;
  Bunday so'rovni bajarish uchun avval uni tayyorlash () funktsiyasidan foydalanib tayyorlash kerak. Bundan tashqari, PDO bayonotini qaytaradi, ammo hali ham ma'lumotsiz. Ularni olish uchun o'zgaruvchilarni kiritgandan so'ng, siz ushbu so'rovni bajarishingiz kerak. Siz ikki yo'l bilan pul o'tkazishingiz mumkin:
  Ko'pincha, siz o'zgaruvchilar bilan qatorni bosib, execute () usulini oddiygina bajarishingiz mumkin:
$ stmt \u003d $ pdo -\u003e tayyorlash ( "E-pochtani qayerda \u003d foydalanuvchilarini TANLASH ismi \u003d?");
$ stmt -\u003e bajaring (qator ($ email));

  $ stmt \u003d $ pdo -\u003e tayyorlash ( "E-pochtani qaerda bo'lgan foydalanuvchilarni TANLASH ismi \u003d: elektron pochta");


$ stmt -\u003e bajaring (qator ("email" \u003d\u003e $ email));
Ko'rinib turibdiki, nomlangan joy egalari holatida () buyrug'ini bajarish uchun qator yuborilishi kerak, bunda tugmachalar to'ldiruvchilar nomlariga mos kelishi kerak.

Ba'zida, juda kamdan-kam hollarda, o'zgaruvchilar birinchi talabga bindValue () / bindParam () -dan foydalanib bog'lanib, so'ngra faqat bajarilganda, ikkinchi usul talab qilinishi mumkin. Bunday holda () ni bajarish uchun hech narsa berilmaydi. Bunga misolni qo'llanmada ko'rish mumkin


  Ushbu usuldan foydalanib, har doim bindValue () ni afzal ko'rish kerakmi? chunki bindParam () ning xatti-harakati yangi boshlanuvchilar uchun aniq emas va muammolarga olib keladi.

Shundan so'ng, siz PDO bayonotini yuqoridagi kabi ishlatishingiz mumkin. Masalan, oldindan bilish orqali:


$ stmt \u003d $ pdo -\u003e tayyorlash ( "E-pochtani qayerda \u003d foydalanuvchilarini TANLASH ismi \u003d?");
$ stmt -\u003e
oldingi ($ stmt $ qator sifatida)
{
  echo $ string ["name"]. "\\ n";
}


Download 51,61 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish