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";
}
Do'stlaringiz bilan baham: |