Oracle exception opvangen in PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mary

mary

05/10/2004 08:31:00
Quote Anchor link
Ik werk dus niet met mysql, maar met Oracle/SQL en hoop dat toch iemand me kan helpen.
Ik heb het volgende probleempje :
een tabel met een constraint voor mijn primary key (nogal logisch ja ;-)).
Indien de gebruiker probeert een record in te voegen met reeds een bestaande primary (het gaat om een normalisatie, dus combinatie van enkele primary keys, dit even terzijde) dan krijg ik natuurlijk een oracle error door mijn php code.

Zoiets als :
Warning: ociexecute(): OCIStmtExecute: ORA-00001: unique constraint (INTRADEV.SYS_C0010906) violated in /var/www/apps/Regis/Usercre/CreUserRes.php on line 46

In plaats van nu elke insert te queryen en op te zoeken of de primary key al bestaat, vroeg ik me af of het mogelijk is een oracle/sql fout op te vangen in php en er een eigen error boodschap voor weer te geven.
Alle ingaves queryen en opzoeken neemt ten eerste weer al tijd in beslag en doet de mooie werking van zo'n constraint ook weer teniet.

Iemand een idee?
Ik ben ora_error en ora_errorcode al tegengekomen maar krijg het niet echt aan de praat :-/
 
PHP hulp

PHP hulp

26/12/2024 08:01:08
 
B a s
Beheerder

B a s

05/10/2004 12:59:00
Quote Anchor link
proeh.. lastig! ik weet niet veel van oracle en hier heb ik dus ook nog geen kaas van gegeten.. zou het kunnen zijn dat je een duplicated entry hebt of probeert aan te maken??
 
Mary

mary

05/10/2004 14:54:00
Quote Anchor link
Ja dat is idd de fout. Mijn constraint zorgt voor deze foutopvanging op databaseniveau en geeft deze weer door php/html heen.
Mijn vraag is nu of die fout af te vangen is in php.
 
B a s
Beheerder

B a s

05/10/2004 16:48:00
Quote Anchor link
wanneer je de query uitvoert, kun je een @ ervoor zetten.. die @ zorgt ervoor dat de foutmelding niet weergeven wordt..

wat je ook kunt doen is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
$res
= @oracle_execute_query($sql_codes);

if (!$res)
{

   echo "fout.. omdat.......";
}

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.