Autor Zpráva
luma64
Profil
Zdravim, ako/akym sposobom najlepsie logovat pripadne chybove hlasenia typu:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource..
Warning: mysql_fetch_row()...

v php ? Dakujem.
Majkl578
Profil
Můžeš si napsat vlastní error handler a v něm chyby logovat jak a kam uznáš za vhodné.
Tori
Profil
Zrovna v tomhle případě se ale z chybové hlášky nedozvíte, proč dotaz selhal. Spíš bych s tím počítala už v aplikaci, např. něco takového:

function getAllPosts() {  // nějaká funkce, která vrací všechny příspěvky na blogu
    $sql = '....';
    $result = mysql_query($sql);
    if (!$result) { 
        Log::add('chyba dotazu: '.$sql.', popis: '.mysql_error()); // vlastní logovací třída
        return array(); // tato funkce vždy musí vracet pole
    } else {
        // načtení všech řádků do pole, vrácení toho pole
    }
}

// v místě volání funkce už se chyby negenerují:
$posts = getAllPosts();
echo 'Počet článků: ', count($posts);
foreach ($posts as $post) {
    // ...
}
Další možnost je zabalit mysql_query do funkce, která bude logování při chybě řešit, anebo rovnou použít nějakou DB vrstvu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: