tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Postgres driver a kódy databázových chyb

před 10 lety

Jur4
Člen | 51

Dobrý den,

dělám s PostrgeSQL databází a narazil jsem na jednu věc. V případě chyby při vykonávání dotazu, není do výjimky uložen kód chyby, která nastala. Nejde proto nějak rozumně rozlišit co to je za chybu.

Zkusil jsem postgres driver upravit a tady posílám funkční kód.

<?php
public function query($sql)
{
    pg_send_query($this->connection, $sql);

    $this->resultSet = pg_get_result($this->connection);
    $code =  pg_result_error_field($this->resultSet, PGSQL_DIAG_SQLSTATE);

    if ($code) {
        throw new DibiDriverException(pg_last_error($this->connection), $code, $sql);
    }

    return is_resource($this->resultSet) && pg_num_fields($this->resultSet) ? clone $this : NULL;
}
?>

Jen nevím jestli neexistují nějaké důvody proč podobný kód není použit.

před 10 lety

David Grudl
Nette Core | 6806

Nešlo by k tomu použít pg_set_error_verbosity?