Category Archives

20 Articles

Instalace nejnovější verze Apache 2.4, PHP 8.2, MariaDB 10.11 a Memcached 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.local a http://devtea.cz.local.

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).

UTF-8, MySQL, kódování a PHP funkce pro práci s řetězci: strlen, substr aj.

Možná jste při práci s PHP narazili na problém s UTF-8 kódováním. Doposud jste využívali kódování cp1250 nebo iso-8859-2 a nebyl problém. Okolnosti vás přinutily požívat UTF-8 a najednou bum. Na stránkách se vám chybně vypisují znaky s českou diakritikou a nevíte co s tím.

Jak správně použít UTF-8 a MySQL?

Je třeba dodržet následující pravidla:

  1. Po připojení nastavit kódování, ve kterém bude probíhat komunikace s databázovým serverem:
    mysql_query("SET NAMES 'utf8'");
    nebo 
    mysql_query('SET CHARACTER SET utf8');
    
    Od PHP 5.2.3 a MySQL 5.0.7 raději použijte:
    mysql_set_charset('utf8');
    
    Je to správná a bezpečná varianta
    pro použití mysql_real_escape_string(). Více: 1, 2, 3.
  2. Kódování PHP souborů nastavit na UTF-8 (pozor na počáteční UTF-8 boom znak)
  3. Odesílat hlavičky s UTF-8 kódováním:
    header('Content-Type: text/html; charset=utf-8');
  4. Nastavit UTF-8 kódování v HTML (meta tagy, xml hlavička aj.)
  5. Používat PHP řetězcové funkce, které zvládají UTF-8 (viz dále)