Nov 23 2009

MySQL: Hromadná kontrola tabulek

Tag: Debian,MySQLJens @ 10:00

V aktuální old-stable (Etch) a vyšších verzí debianu se při spouštění MySQL 5.x automaticky provádí kontrola tabulek (CHECK TABLE) a případně i oprava (REPAIR TABLE) poškozených tabulek. Toto má nastarosti skript /etc/mysql/debian-start a funkce check_for_crashed_tables (definovaná v /usr/share/mysql/debian-start.inc.sh). Občas je ale potřeba explicitně prověřit všechny databáze a tabulky, to lze nejjednodušeji udělat z příkazové řádku pomocí utility mysqlcheck:

/usr/bin/mysqlcheck --defaults-file=/etc/mysql/debian.cnf --verbose --all-databases

Konfigurační soubor /etc/mysql/debian.cnf je přístupný pouze pro roota (tedy výše zmíněný příkaz lze spustit pouze pod rootem) a jsou v něm uloženy autentizační údaje pro systémový učet Debianu (debian-sys-maint) do MySQL.


Nov 10 2009

PHP: break a goto řídící stuktury

Tag: PHPJens @ 23:50

Zase jsem se dnes naučil něco nového o PHP. Věděli jste, že klíčové slovo break může mít číselný argument? Já se přiznám že jsme to netušil a nikdy mě to ani nenapadlo. Kolega v práci to zřejmě běžně používá, takže díky Pauci za objev :) A jak to celé funguje a na co to je? Volitelný celočíselný argument udává, z jaké hloubky zanoření v řídící struktuře má vyskočit, implicitní je 1, podívejte se na příklad:

<?php
$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />n";
        break 1;  /* vyskoci pouze ze switch. */
    case 10:
        echo "At 10; quitting<br />n";
        break 2;  /* vyskoci ze switch a while. */
    default:
        break;
    }
}
?>

Více přímo v manuálu PHP.

Další zajímavostí je řídící struktura goto. Ta je nově přidána od PHP 5.3, osobně si myslím ze goto je čisté zlo, ale určitě existuje případ, kdy se může hodit. Co mě ale zaujalo nejvíce, přímo v manuálové stránce PHP je naprosto překvapivě umístěn obrázek (s tím jsem se v manuálu PHP nikdy nesetkal), který je navíc pojatý jako komiks a zřejmě vyjadřuje názor autora(ů) manuálové stránky na přidání struktury goto do jazyka :)

goto

Zdroj obrázku: xkcd.