A MySQL és MariaDB legnagyobb hiányossága: a materializált view

2019.08.24. legyes 0

Ha olvasod a blogom korábbi bejegyzéseit, tudhatod, hogy nem vagyok híve a vegyünk minden hónapban egy erősebb szervert, ha valami webes szolgáltatás kezd kifogyni az erőforrásokból. Ahogy sokszor hangoztatom azt is, hogy nem a PHP lassú, hanem az, ami kiszolgálja: a legtöbb esetben az adatbázis válaszideje.

No Image

PHP 7.0 frissítése PHP 7.x és 8.x -re

2017.12.02. legyes 0

Meglehetősen barátságtalanul van megoldva a PHP7 frissítése, nem is értem, hogy miért kellett így megcsinálni, talán a shared hostingok és a lusta fejlesztők/megbízók miatt. A PHP7 esetén nem frissül automatikusan ha újabbat kérünk tőle, hanem telepít a régi mellé egy újabb változatot. Természetesen a konfigokat sem hozza át. Én szeretek a legújabb stabil dolgokkal foglalkozni és kerülöm azt, hogy mindegyik kódom alatt verziókezelni kelljen a dolgokat. Igen, tudom nem vagyok [….]

No Image

Rendkívül lassú a PHP-MySQL (localhoston) Windows alatt

2017.09.28. legyes 0

Én nem vagyok rajongója annak, hogy Windows alatt futtassunk PHP-MySQL kombinációt. Hisz’ eleve sokkal több erőforrást adunk oda az operációs rendszernek, mint Linux alatt. Nincs meg a fájlrendszerrel való finomhangolás lehetősége sem, valamint az IIS és én sohasem leszünk barátok. Egy projekt alkalmával arra lettem figyelmes, hogy ugyanaz a kód fényévekkel gyorsabban fut Linux alatt, mint Windows alatt, egy egyszerűen semmi logikus magyarázat nem volt rá. Nos a problémát a [….]

No Image

Több sor és oszlop egy cellaként MySQL és MariaDB-ben: JSON függvények és a GROUP_CONCAT() együtt

2017.08.28. legyes 0

A fejlesztők 2 fajtája nem foglalkozik az adatbázis lekérdezések sebességével több kapcsolódó adatnál: a kezdők és a profik. A kezdők lekérdezik az alap adatokat, majd egy foreach()-en belül futatják le a kapcsolódó adatok lekérdezését: foreach ( $products as $product ) { $db->query( „SELECT id, thumbnail, url FROM product_images WHERE product_id = :product_id” ); } A profik is ez csinálják, csak sokkal csillibb kivitelben. Először csinálnak egy Image class-t. Majd egy [….]

No Image

HTML kimenet tömörítése PHP-val

2017.03.25. legyes 0

Kereső-optimalizálás és betöltési sebesség szempontból a szépen strukturált HTML forráskód rossz. De nem mindig engedhetjük meg azt a luxust, hogy tartunk mindenből egy fejlesztői – könnyen olvasható és kezelhető – változatot és egy tömörítettet. Ilyenkor segíthet ezen a linken található hasznos megoldás: http://php.net/manual/en/function.ob-start.php#71953

No Image

XML konvertálása JSON objektummá vagy asszociatív tömbbé PHP-vel

2017.02.08. legyes 0

Annak ellenére, hogy a JSON nagyon hódít – nyilvánvaló okok miatt, még mindig nagyon sokan használnak XML formátumokat. Többek között ilyen az RSS feed is, de az egyik legerősebb marketinggel rendelkező bérelhető webshop API-ja is, a ShopRenteré. XML-el dolgozni viszont rémálom a JSON-höz képest. Így hát felmerült a probléma, hogy  valami egyszerű megoldás kellene, ahelyett, hogy minden XML-t végignézek.

Raspberry Pi GPIO vezérlés PHP-vel

2016.07.20. legyes 0

Mindig jó, ha nem kell új nyelvet tanulni, csak azért, mert az ismert scriptnyelv (PHP) szövegfeldolgozásra való 🙂 A PiPHP: https://github.com/PiPHP/GPIO és egy építési példa: https://www.sitepoint.com/powering-raspberry-pi-projects-with-php/

No Image

PHP7 – multibyte string függvények

2016.07.05. legyes 0

A mai napon arra lettem figyelmes, hogy az eddig gond nélkül futó PHP-es scriptek arra panaszkodnak, hogy nincs mb_strlen() függvény. Azt hittem, hogy átsiklottam a changelog „megszűnt függvények” részénél az mb_ kezdetű függvények felett, de kiderült, hogy csak külön csomagba pakolták, ahogy anno a JSON-t is. Szóval a megoldás: apt-get install php7.0-mbstring Érdemes lesz odafigyelni a későbbiekben…

No Image

Apache .htaccess konvertálása nginx konfiggá

2016.03.29. legyes 0

Nem vagyok kibékülve az indiánnal, mert hihetetlenül zabálja a memóriát. Plusz olyan default beállításai vannak, amik utat nyitnak a hackeléseknek. Továbbá a .htaccess fájlok miatt sok esetben biztonsági kockázatot is jelent. Nginx párti vagyok, még ha csak Google alapján konfigolom is. Egyre többször találkozom azzal az igénnyel, hogy Apache-ra írt oldalnak kellene működnie nginx alatt. A Winginx oldala a legnépszerűbb ilyen online konverter, de nekem sohasem volt jó, amit dobott. [….]

No Image

WordPress érdekesség, avagy miért nem jó ötlet fröccsöntött rendszereket használni

2016.03.26. legyes 0

A minap a segítségem kérték, mert egy szerver spammelt, letiltották és azonosítani kellett a baj forrását. Kiderült, hogy feltörtek rajta egy WordPress blogot, és ezzel elég nagy bajt okoztak, ugyanis a WordPress PHP-ja hozzáfért egyéb könyvtárakhoz is, amiben más PHP oldalak futottak. Első alkalommal valószínűleg egy kép plugin hibát kihasználva base64-ben kódolva feljutott pár PHP fájl. Általában a szokásos dolgokra voltak kihegyezve: teljes adatbázis leképezés, amihez a WordPress felhasználója hozzáfér [….]

No Image

SQL: Ügyes trükk 2 állapot közötti váltogatásra

2016.03.23. legyes 0

Sok esetben előfordult már, hogy szükségem volt egy elem láthatóságának 2 állapota közötti váltogatásra. Igazi amatőr módon eddig vizsgálgattam, hogy látható-e és ha igen, akkor el kell rejteni és fordítva. Na, ettől jóval egyszerűbb a megoldás: UPDATE table SET field = 1 – field forrás: http://stackoverflow.com/questions/603835/mysql-simple-way-to-toggle-a-value-of-an-int-field

No Image

PHP: HTML fájl feldolgozása és manipulálása

2016.02.29. legyes 0

Már az elején lelövöm a poént: Ha a PHP saját XML DOM parserét használod, biztosan kevesebb hajad marad a nap végére. A SimpleXML sajnos kevés ehhez, de a csodafegyver itt van: http://simplehtmldom.sourceforge.net/manual.htm . Történt ugyanis, hogy HTML sablon alaján kell PDF-et generálnom. A sablonban táblázatok vannak formázva ( na itt bukott el a PHP XML DOM osztály, mert piszok kacifántos vele xHTML-t manipulálni ), aminek a formázását meg kellene őrizni, hisz’ [….]

No Image

PHP és MySQL adattípus túlcsordulások

2015.07.19. legyes 0

Azt ügye tudjuk, hogy a PHP-ben automatikus típuskonverzió van, amire oda kellene figyelni. A PHP-ban a számok ábrázolására 2 típus áll rendelkezésre (+boolean): – (signed) integer – (signed) float Ezek minden esetben előjellel vannak ellátva, így az integer típusban maximum 2^63 érték tárolható egy 64 bites rendszeren, 64 bites PHP-val. Viszont! A MySQL-ben rendelkezésre áll az előjel nélküli változat, az unsigned bigint, ami ugyanezen körülmények között 2^64 tud ábrázolni, előjel [….]