Category Archives

21 Articles

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, Memcached a Xdebug 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 a Memcached 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.

V čem upravovat velké textové SQL dump soubory? (edit big files)

Editace a prohlížení velkých textových souborů (1 GB+) není žádná legrace. Představte si, že máte před sebou textový soubor s SQL dumpem databáze a potřebujete v něm pod Windows něco upravit.

Jestli je soubor v řádu jednotek nebo maximálně desítek megabytů, můžete zkusit český PSPad (v 4.5.6) nebo lépe Notepad++ (v 5.9.6.2).

Pokud ale musíte pracovat s dumpy, které mají stovky megabytů nebo jednotky gigabytů, rovnou na výše dva zmíněné programy zapomeňte. Potřeboval jsem pracovat s dumpem o velikosti cca 700 MB a ani jeden si s ním neporadil (ne že bych čekal něco jiného).