No Image

MySQL és a WHERE feltétel sorrendje

2014.06.28. legyes 0

Mivel tapasztalati úton tanultam a (My)SQL használatát, sohasem jutott az eszembe, hogy a WHERE feltétel sorrendje ennyire számítana. Az alábbiakban párszáz query futásidejének összege látható. A változás a grafikonon azt az időpontot jelzi, amikor módosítottam a WHERE feltételek sorrendjeit. Elég nagy a változás mértéke ahhoz, hogy érdemes legyen figyelembe venni, hogyan is írunk meg pár egyszerűnek tűnő lekérést.

No Image

MySQL view importálás hiba ( SELECT command denied to user ”@’ )

2014.06.16. legyes 0

Amennyiben adatbázisokat költöztetünk, előfordulhat, hogy a view-t létrehozó felhasználó az új helyen már nem létezik. Ez jó kis galibát tud okozni, mert a hibaüzenetek nem utalnak egyértelműen a hiba valódi okára. root@z:~# ERROR 1143 (42000) at line 1: SELECT command denied to user ”@’85.90…..’ for column ‘oszlop’ in table ‘tabla’ Persze a szokásos MySQL használatot megkönnyítő programok nem működnek. A PHPMyAdmin csak részben listázza a táblákat és az information schema-ban [….]

No Image

Vicces MySQL, vagy csak én nem figyelek?

2012.12.13. legyes 0

Kedvenc böngészős játékom forráskódjában van egy SQL számítás, ami egy bolygó ökológiájának változását számolja ki. Ebben van egy sima szorzat masik.db*ff.coef amire azt mondja, hogy sajnos túlcsordul az UNSIGNED BIGINT . De! Ha ugyanezt módosítom erre: (masik.db/1)*ff.coef akkor nem csordul túl. Gondoltam megviccelem, (masik.db*1)*ff.coef . Na ez is túlcsordul :getlost: :blink: A valódi megoldás itt: http://stackoverflow.com/questions/11698613/bigint-unsigned-value-is-out-of-range-my-sql

No Image

Írjunk magunknak egy bugyuta játékot :)

2012.11.03. legyes 0

Régebben szinte függővé tett a Zandagort nevű játék. Egy tökéletes bizonyíték volt arra, hogy a PHP-MySQL-Javascript (AJAX) is képes lehet élhető és élvezhető játékot kiszolgálni. Sajnos mostanság kissé leáldozóban van a csillaga. Kíváncsi voltam, hogy vajon én képes vagyok-e ilyesmit alkotni? Így hát belekezdtem. Nem hiszem, hogy valaha lesz belőle játék, de megtaláltam a tökéletes hobbit azt hiszem. Hátrányai között van sajnos, hogy ezt is a számítógép előtt kell űzni, [….]

No Image

Az aktuális MySQL okosság #1

2012.10.31. legyes 0

Arra adtam a fejem, hogy egy picit bővebben belevetem magam a MySQL-be. Ez nem jelenti azt, hogy enterspájz adatbázisokat optimalizálok, csak picit tovább megyek a „SELECT * FROM tabla ORDER BY RAND()” szinten. Erre igazából azért van szükség, mert úgy gondoltam, hogy összeütök magamnak egy parányi űrstratégiát PHP, MySQL, JavaScript, HTML4 alapon (lásd: www.zandagort.hu). No nem azért, hogy játsszak kicsit, hanem azért, hogy fejlesszem picit képességeimet. Korábban már használtam az [….]

No Image

PHP hack #1

2012.10.16. legyes 0

Azaz miért is nem szabad bízni a – szerencsére megszüntetett – mysql_real_escape_string() – függvényben: http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string. Avagy igenis fel kell hagyni a lustasággal és az öreg „mysql” modullal, használjunk mysqli prepared statement-eket vagy PDO-t ( $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); !!!). Bővebb infók a védekezésről itt: http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string Vagy csak injektáljunk PHP kódot egy JPEG fájl EXIF infójába: http://php.webtutor.pl/en/2011/05/13/php-code-injection-a-simple-virus-written-in-php-and-carried-in-a-jpeg-image/ . Mivel a PHP az EXIF -et csakis PECL bővítményen keresztül tudja kezelni (legjobb tudomásom szerint), [….]

No Image

PHP: felesleges nullák eltüntetése a MySQL DECIMAL típusból

2012.05.07. legyes 0

Gondoltam lusta leszek és rákeresek a Google tudástárban, hogy hátha van ilyen paramétere mondjuk a numer_format() -nak. A probléma az, hogy ha az adatbázisból pl. DECIMAL 6,2 formátumban érkezik egy egész szám, akkor a „.00” ott lesz a végén, pedig értelme ebben az esetben nem sok. // $szam = „12.00”; echo $szam; // 12.00 Aztán eszembe jutott az automatikus típuskonverzió, így a megoldás: echo ($szam*1);

No Image

MySQL syslog tűzfal trigger

2010.10.13. legyes 0

delimiter // create trigger tr_syslog before insert on logs for each row begin IF (NEW.host = ‘10.1.12.218’) THEN INSERT INTO cisco_wlc (host,facility,priority,level,tag,datetime,program,msg,seq) VALUES (NEW.host,NEW.facility,NEW.priority,NEW.level,NEW.tag,NEW.datetime,NEW.program,NEW.msg,NEW.seq); DELETE FROM logs WHERE seq=NEW.seq LIMIT 1; END if;