Shuningdek, O’zbekiston Prezidenti 7-fevral kungi farmoni bilan 2017


Masalan, quyidagi faktlarni keltirish kifoya



Download 306,49 Kb.
bet10/24
Sana21.06.2022
Hajmi306,49 Kb.
#689874
1   ...   6   7   8   9   10   11   12   13   ...   24
Bog'liq
Защита от SQL

Masalan, quyidagi faktlarni keltirish kifoya:

  • Natijalar qatorini massivga olish kabi oddiy xususiyat ( mysql_fetch_array ( ) ga o'xshash ), tayyorlangan ifodalardan foydalangan holda so'rovlar uchun MySQLI -ga faqat 5.3(!) versiyada qo'shilgan. Ushbu versiyadan oldin kutubxona jahannam buzuqliklarisiz amalda yaroqsiz edi .

  • Xuddi shu narsa PDO-da ulanish kodlashni o'rnatish uchun ham amal qiladi - bu faqat o'sha 5.3-da mumkin bo'ldi. Oldingi barcha versiyalarda, PDO-da ulanishni kodlashni o'rnatish shunchaki imkonsiz edi (bu - adolat uchun, buni tan olish kerak - moslik rejimi o'chirilganida katta muammo emas, lekin - teshik, ser!).

  • mysqli ba'zi hollarda ma'lumotlar bazasidagi maydonning maksimal hajmiga teng xotirani zaxiralashga harakat qiladi - o'rta matnlardan ehtiyot bo'ling !

Bu faktlar shuni ko'rsatadiki, ikkala kutubxona ham hali ham xom ashyo va ularda boshqa zarur funksiyalar yo'qligini kutishimiz mumkin.
Keling, mavjud kutubxonalarning asosiy kamchiliklarini sanab o'tamiz

  • so'zlilik

  • to'ldiruvchilar etishmayapti

  • disk raskadrovka maqsadida klassik SQL so'rovini olishning iloji yo'qligi

  • mumkin bo'lgan ishlash muammolari* (bu masala quyida muhokama qilinadi)

va biz ularni batafsilroq tahlil qilamiz


Ko`pso`zlik
Masalan, so'rov natijasining barcha qatorlarini ikki o'lchovli massivga olish kabi talab qilinadigan operatsiyani olaylik. mysqli hali ham bunday xususiyatga ega emas. Yoki, aytaylik, o'zgaruvchilarni u erda faqat alohida funktsiya bilan
to'ldiruvchilarga bog'lashingiz mumkin . Natijada, bitta so'rov ma'lumotlarini massivga olish uchun bizga kamida to'qqiz (!) qator kod kerak bo'ladi:
$data = array();
$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";
$stmt->prepare($query);
$stmt->bind_param("s", $continent);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_NUM)) {
$data[] = $row;
}
Bundan tashqari, ushbu kodning aksariyati hech qanday semantik yukni ko'tarmaydi, barcha bajarilgan so'rovlar uchun mutlaqo bir xil va ma'lumotlarni olish uchun faqat ikkita satr etarli bo'lishiga qaramay, yuzlab skriptlarda ko'p marta takrorlanadi:
$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";
$data = $db->getAll($query,$continent);
PDO bilan _ bu Oz u erda yaxshiroq _ taxmin qildi ruxsat berish uzatish massiv ichida bajaring ( ) va u yerda usuli fetchAll (). Lekin siz hali ham eng oddiy operatsiyalar uchun juda ko'p keraksiz monoton kodlarni yozishingiz kerak.
Xususan, bizning maqolamiz mavzusiga qaytaylik - majburiy . Bu yerda menda $_GET[' id '] o'zgaruvchisi bor; Men uni to'ldiruvchiga bog'lamoqchiman . Ajoyib, men buni to'g'ri bajara olaman ( ) ... lekin uni massiv qilish orqali. Nima uchun? Haydovchining o'zi buni men uchun qila olmaydimi?

Download 306,49 Kb.

Do'stlaringiz bilan baham:
1   ...   6   7   8   9   10   11   12   13   ...   24




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