To'ldiruvchilarni amalga oshirish
Umuman olganda, to'ldiruvchilar bilan bezovta qilmasdan , mavjud kutubxonalardan foydalanish qulayligini yaxshilashga hech kim to'sqinlik qilmaydi . Aytaylik, o'zingizning PDO to'ldirgichlaringizdan (yoki bir yil oldin Habré da chop etilgan kutubxonada qilinganidek mysqli dan) foydalangan holda, etishmayotgan funksiyalarni amalga oshiradigan PDO ustiga o'ram yozing .
Lekin bizda o'z-o'zidan yasalgan to'ldiruvchilarni ko'rib chiqish uchun bir nechta sabablar bor :
Birinchidan, biz allaqachon ko'rganimizdek, standart kutubxonalarda mavjud bo'lgan to'ldiruvchilar to'plami etarli emas.
Ikkinchidan, server to'ldiruvchilari ba'zi sabablarga ko'ra bizga mos kelmasligi mumkin. Uchinchidan, to'ldiruvchilarni mustaqil qayta ishlash misolidan foydalanib , biz SQL so'rovlarini to'g'ri formatlashning nuanslarini ko'rib chiqamiz.
SQL so'rovining turli elementlarini formatlash tamoyillari
Maxsus to'ldiruvchilarni amalga oshirish oson. Primitiv parser allaqachon PHP-ga o'rnatilgan. Bizga kerak bo'lgan yagona narsa - turli so'rov elementlarini qanday ajratishni o'rganishdir. Ammo bu juda muhim nuqta, bu haqda batafsilroq to'xtalib o'tishga arziydi.
Formatlash qoidalari element turiga bog'liq bo'lganligi sababli, biz, birinchi navbatda, qanday so'rov elementini unga almashtirayotganimizni aniq tushunishimiz kerak. Va ikkinchidan, biz qandaydir tarzda bu ma'lumotni joylashtiruvchi ishlov beruvchiga etkazishimiz kerak . Boshlash uchun , keling, so'rov odatda qanday elementlardan iborat bo'lishi mumkinligini aniqlaymiz? Misol uchun , bu SQL:
INSERT INTO `db`.`table` as `t1` VALUES('string',1,1.5,NOW());
Uni uchta asosiy elementlar guruhiga bo'lish mumkin:
SQL tilining haqiqiy elementlari - operatorlar, o'rnatilgan funktsiyalar, o'zgaruvchilar va boshqalar.
identifikatorlar (ma'lumotlar bazalari, jadvallar va maydonlar nomlari)
bir necha xil turdagi literallar (to'g'ridan-to'g'ri so'rovga almashtirilgan ma'lumotlar).
Bizni oxirgi ikkita element qiziqtiradi, chunki ular maxsus formatlashni talab qiladigan yagona narsadir.
Keling, bizning ishlov beruvchimizga almashtiriladigan ma'lumotlar turi haqida ma'lumotni qanday etkazish haqida o'ylab ko'raylik. Mavjud echimlar buni egri qiladi (bu endi sizni ajablantirmasligi kerak). Bu erda ikkita variant mavjud: yoki ulanish funksiyasini chaqirish orqali turni o'rnatishingiz kerak (bu darhol kodni vaqti-vaqti bilan murakkablashtiradi ) yoki PDO kabi uni umuman o'rnatmaslik kerak, agar siz ma'lumotlarni to'g'ridan-to'g'ri bajarish uchun uzatsangiz ( ). Ammo siz umuman tursiz qilolmaysiz va shuning uchun PDO bajarish uchun uzatilgan barcha ma'lumotlarni satr sifatida ko'rib chiqadi. Agar PDO moslik rejimida ishlayotgan bo'lsa, bu kulgili oqibatlarga olib keladi: LIMIT parametrlarini bajarish uchun () o'tkazmoqchi bo'lganingizda, PDO xato xabari bilan ishdan chiqadi, unda siz halol kutubxona ofset va chegarani belgilagan tirnoqlarni ko'rishingiz mumkin!
Umuman olganda, boshqa yechim kerak. Va shunday! Ammo biz bu haqda quyida gaplashamiz, ammo hozircha formatlash qoidalarini ko'rib chiqamiz.
Do'stlaringiz bilan baham: |