if (!empty($_GET['max_price'])) $w[] = $db->parse("price <= i:", $_GET['max_price']);
if (count($w)) $where = "WHERE ".implode(' AND ',$w);
$data = $db->getArr("SELECT * FROM table $where LIMIT i:,i:",$start,$per_page);
Bu erda taqdim etilgan g'oyalarning ko'pchiligini (xususan, o'z-o'zidan yozilgan tarjima) tayyor amalga oshirish misoli sifatida. toʻldirgichlarni mahalliy oʻringa, 100500 turga terilgan toʻldirgichlar va yana koʻp), deyarli 10 yil oldin yozilganligini, lekin negadir keng qoʻllanilmaganligini alohida taʼkidlab oʻtgan.
mysql _* funksiyalari PHPda uzoq vaqtdan deprecated
Achinarli mavzu.Ajoyib kutubxonani dangasalik va jaholat qanday ko'mib tashlashi haqida hikoya.
Birinchidan, "funktsiyalar" emas, balki umuman kengaytma, ikkinchidan, eskirgan emas , lekin tushkunlikka tushgan va yaqinda emas, balki yaqinda. Bundan tashqari, shakar emas, lekin siz so'zda aniqroq bo'lishingiz kerak.
Uchinchidan, bu go'zal va barqaror kutubxonadan voz kechish uchun hech qanday sabab yo'q. Va ular uni tildan chiqarib tashlashni xohlashlarining yagona sababi shundaki, u bilan shug'ullanmoqchi bo'lgan boshqaruvchi yo'q edi. Bundan tashqari, jamiyatning o'zi uni qanday qilib to'g'ri boshqarishni o'rganmaganligi sababli paydo bo'lgan salbiy jamoatchilik fikri. Biroq, siz hurdaga qarshi bahslasha olmaysiz va qo'llanmadagi katta qizil ogohlantirishlar bizga zudlik bilan MySQL kengaytmasidan o'tishimiz kerakligini aytadi .
Ammo bu iborada yana bir nuance bor, juda muhim. Ko'pgina Ajam ishlab chiquvchilar tushunmaydigan narsalar toifasidan . Agar biz " mysql _ * funktsiyalari" haqida gapiradigan bo'lsak, ular haqiqatan ham dastur kodida bo'lmasligi kerak! Shuningdek, mysqli _*, pdo _* funktsiyalari yoki boshqa yalang'och API chaqiruvlari. E'tibor bering, biz umuman kod haqida emas, balki dastur kodi haqida gapiryapmiz: shunchaki API funktsiyalariga barcha qo'ng'iroqlar kutubxonalarga to'plangan bo'lishi kerak va dastur kodida siz kutubxona funktsiyalariga murojaat qilishingiz kerak. Va barcha MySQL (i) _ query () va MySQL (i) _ fetch_array () dan aniq so'rovlarni bajarish uchun foydalanish, afsuski, noprofessionallik haqida gapiradi.
Buning sababi, aslida, juda oddiy: API funktsiyalari juda ortiqcha. Ma'lumotlar bazasidan ma'lumotlar qatorini olish uchun siz o'nlab qatorlarni yozishingiz kerak. Va bu xatolarni qayta ishlash, jurnalga kirish va so'rovlarni profillash va boshqalar kabi zaruriy narsalarni hisobga olmaydi . Natijada, agar biz API funktsiyalarini to'g'ridan-to'g'ri kodda ishlatadigan bo'lsak, u bir tomondan juda keraksiz, boshqa tomondan esa ... etarli darajada funktsional emas! PDO mualliflari o'z kutubxonalarini foydalanishga yaroqli qilishga harakat qilishdi , lekin menimcha, bu etarli emas. Va PDO ga qo'ng'iroqlar xuddi shu tarzda o'z sinfingiz usullariga kiritilishi kerak.
Yana bir dalil - endi siz mysql _ * ni boshqa narsaga o'zgartirishingiz kerak. Buni bitta kutubxona faylida qilish o'nlab loyihalarga qaraganda ancha oson.
Ko'rib turganingizdek, bor. Amalga oshirish va amal qilish oson bo'lgan juda oddiy qoidalar to'plami. Aytishim kerakki, men ham darhol muvaffaqiyatga erisha olmadim. Avvaliga ro'yxat to'liq emas edi, keyin - ixcham.
Do'stlaringiz bilan baham: |