Category Archives

22 Articles

Kombinovaný primární klíč v MariaDB/MySQL: Víte, že více primárních klíčů na tabulce vám nezajistí unikátnost každého sloupce?

by Zdeněk Večeřa 0 Comments

Možná jste slyšeli, že primární klíč se často nastavuje na sloupec pojmenovaný jako „id“. Často ve spojení s datovým typem „int“ a „Auto Increment“, který zajistí automatické zvyšování hodnoty nového záznamu ve sloupci o +1.

A možná jste si mysleli, že když nastavíte ještě druhý primární klíč třeba nad sloupec „email“, tak že vám zajistí unikátnost také e-mailové adresy. Ale tak to není.

PHP 8.1 změnilo zpracování SQL chyb, ve striktním režimu nově vyvolá výjimku

Až do PHP 8.0 bylo nastaveno výchozí reportování chyb mysqli_report() na stav MYSQLI_REPORT_OFF. To se změnilo s příchodem PHP 8.1.0, kde je výchozí nastavení kombinace MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Autoři PHP se tak rozhodli kvůli tomu, že databázové chyby jsou častý problém, které ovlivňuje běh webových aplikací – nyní se tedy programátoři webů budou muset poprat se všemi chybami.

Rozdíl mezi nastavím lze popsat následovně:

Instalace nejnovější verze Apache 2.4, PHP 8.2, MariaDB 10.11, Xdebug, ImageMagick, Memcached a Memcache na Windows 10 a 11

Nainstalujte si webový server Apache 2.4 se skriptovacím jazykem PHP 8.2 přímo na svůj počítač s Windows 10 a 11. K tomu si během pár vteřin přidejte databázový server MariaDB 10.11 Memcached.

A pro fajnšmekry tu je návod na „VirtualHost“, který využijete pro více (sub)domén na localhostu. Každá (sub)doména bude mít vlastní DocumentRoot“ a bude dostupná na samostatné adrese, například http://tronlaserarena.cz.localhost a http://devtea.cz.localhost.

Instalace nejnovější verze Apache 2.4, PHP 8.0, MariaDB 10.5 a Memcached na Windows 10

Nainstalujte si webový server Apache 2.4 se skriptovacím jazykem PHP 8.0 přímo na svůj počítač s Windows 10. K tomu si během pár vteřin přidejte databázový server MariaDB 10.5 Memcached.

A pro fajnšmekry tu je návod na „VirtualHost“, který využijete pro více (sub)domén na localhostu. Každá (sub)doména bude mít vlastní DocumentRoot“ a bude dostupná na samostatné adrese, například http://tronlaserarena.cz.h a http://devtea.cz.h.

POZOR: Už existuje novější návod na instalaci Apache 2.4, PHP 8.2, MariaDB 10.11, Xdebug, ImageMagick, Memcached a Memcache na Windows 10 a 11.

MariaDB/MySQL: Nelze vložit záznam kvůli chybě „Field column_name doesn’t have a default value“ nebo „Incorrect time value: ““? Vypněte STRICT_TRANS_TABLES

Pokud databázový server MariaDB nebo MySQL nedovolí vložit nový záznam do tabulky kvůli chybě „Field ‚column_name‘ doesn’t have a default value“ (Error 1364), znamená to, že máte nastavený přísný režim SQL (STRICT_TRANS_TABLES).

MySQL/MariaDB: Jaký je rozdíl mezi INNER JOIN, LEFT JOIN a RIGHT JOIN? Tady je úžasná vizualizace!

by Zdeněk Večeřa 1 Comment

Rozdíl mezi jednotlivými typy spojení tabulek je obrovský, protože vám vrátí odlišné záznamy. Nejčastěji se můžete setkat s INNER JOIN a LEFT JOIN, využívané jsou také RIGHT JOIN a OUTER JOIN, ale existují i složitější konstrukce LEFT JOIN EXCLUDING INNER JOIN, RIGHT JOIN EXCLUDING INNER JOIN a OUTER JOIN EXCLUDING INNER JOIN.

Jejich pochopení vám ulehčí následující vizualizace. A když ještě správně nastavíte indexy, databázový server vás bude zbožňovat.