Forum » Programiranje » [PHP] Kako ujeti exception
[PHP] Kako ujeti exception
Poldi112 ::
Imam objekt za dostop do baze (pretežno kopirano iz enega tutoriala). Stvar dela ok, edino če se kje pri query-ju zalomi tega ne vidim, ker ne znam ujeti napake. Objekt:
In uporaba, ki je očitno napačna, a sem probaval razne stvari in mi ni uspelo priti to tega svojega nesrečnega $e:
require_once ('database_connection.php'); class db extends db_connect { public function Query($sql) { try { $this->open_connection(); $sql = pg_query($sql); } catch(Exception $e) { return $e; } $this->close_connection(); return $sql; } }
In uporaba, ki je očitno napačna, a sem probaval razne stvari in mi ni uspelo priti to tega svojega nesrečnega $e:
include_once('database.php'); $db = new db(); $query_komentar = "SELECT * FROM ne_obstaja"; try{ $sql_komentar = $db->Query($query_komentar); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; }
MisterR ::
mysql ne vrača exceptions.
Če uporabljaš PHP5 PDO potem imaš na voljo nekaj funkcij ampak sam jih ne uporabljam, če mi kaj ne štima pač izpišem query in to mi za testiranje zadostuje.
Če uporabljaš PHP5 PDO potem imaš na voljo nekaj funkcij ampak sam jih ne uporabljam, če mi kaj ne štima pač izpišem query in to mi za testiranje zadostuje.
Poldi112 ::
PDO ne uporabljam, vsaj ne da bi vedel, imam pa postgres.
Zdaj za samo testiranje tudi sam izpišem query. Tisto, kar bi rad je, da imam neko potrditev, da je insert statement uspel. Najbolj smiselno se mi je zdelo to delati z exception-i.
Pred tem sem imel pg_query or die(...) in zdaj efektivno iščem nadomestek za ta die.
Zdaj za samo testiranje tudi sam izpišem query. Tisto, kar bi rad je, da imam neko potrditev, da je insert statement uspel. Najbolj smiselno se mi je zdelo to delati z exception-i.
Pred tem sem imel pg_query or die(...) in zdaj efektivno iščem nadomestek za ta die.
Where all think alike, no one thinks very much.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Ziga Dolhar ::
PHP: pg_query - Manual
Če stvar fejla, ne vrže exceptiona, ampak vrne FALSE. Potem povprašaš pg_last_error() za dejansko napako.
Če stvar fejla, ne vrže exceptiona, ampak vrne FALSE. Potem povprašaš pg_last_error() za dejansko napako.
https://dolhar.si/
Poldi112 ::
Izgleda da bo ok. Tnx. Sem imel v spominu, da se pri insertu oz. update-u ni ničesar vračalo, zdaj pa vidim, da dejansko pri uspelem vrne nek resource id, tako da stvar funkcionira:
Last error sicer ne dela, ampak če si izpišem query ga vedno lahko direkt v postgres vržem in vidim, zakaj ne uspe.
$sql_komentar = $db->Query($query_komentar); if (!$sql_komentar) { echo "An error occured.\n"; }
Last error sicer ne dela, ampak če si izpišem query ga vedno lahko direkt v postgres vržem in vidim, zakaj ne uspe.
Where all think alike, no one thinks very much.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PHP povezava z MysqlOddelek: Izdelava spletišč | 915 (760) | snooze77 |
» | C# INSERT statment ne vpise podatkovOddelek: Programiranje | 1201 (1075) | darkolord |
» | Napaka pri povezavi z bazo - c#Oddelek: Programiranje | 1003 (867) | Mitja Bonča |
» | C# OleDB create databaseOddelek: Programiranje | 1289 (1121) | DubleG |
» | Raziskava o ranljivosti spletnih strani z SQL bazami podatkovOddelek: Novice / Varnost | 4915 (4251) | sverde21 |