Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler bei OCIExecute
Hallo,
habe mal eine kurze Frage: (DB Oracle 9i)
Ich lasse mit ociexecute ein Statement ausführen.
Wie kann ich denn, wenn es nun Fehler gibt(durch constraints etc von Seiten der DB), diese richtig abfangen?
So funzt es nicht:(vereinfacht dargestellt)
(gibt dann die Fehlermeldung auch auf meiner Seite aus und nicht nur im alert)
$result = ociexecute($sql_statement_update,OCI_DEFAULT);
if($result != true)
{
<alert "Das war nix !!!+Fehlermeldung";
}
Wie kann ich denn die Fehlermeldung in einem Javascriptalert anzeigen?
Und zwar nur dort, nicht auf meiner Seite.
Danke für Tipps
Original geschrieben von galaxy2
Ich lasse mit ociexecute ein Statement ausführen.
Wie kann ich denn, wenn es nun Fehler gibt(durch constraints etc von Seiten der DB), diese richtig abfangen?
OCIError auswerten?
RTFM (http://www.php.net/manual/de/ref.oci8.php)
Wie kann ich denn die Fehlermeldung in einem Javascriptalert anzeigen?
Und zwar nur dort, nicht auf meiner Seite.
wie meinen?
arbeitest du mit serverseitigem javascript ...?
Danke.
Diese Funktion kannte ich noch nicht. Habe die Fehler bisher nie "formatiert".
Zu Js: Ich will einfach nur von meinem php-script ein alert machen, welches den Fehler ausgibt. Kenne keine andere Möglichkeit.
Eine Frage habe ich aber noch.
Wie kann ich denn meine php-Variable in den js alert einbinden?
in der php-var($message) steht die errormessage.
So geht es nicht:
<script language="JavaScript">
alert("<? echo"$message"?>");
</script>
vielleicht so ??
<script language="JavaScript">
var test = "<?echo $message; ?>";
alert(test);
</script>
nein dass geht nicht. Habe es so schon in sehr vielen Varianten versucht. Hat irgendwie noch nicht gefunzt.
Kann es sein das es daran liegt, das js lokal im Explorer läuft und php auf nem Server.
Hab xampp. Kann man dort irgendwie js aktivieren?
doch das geht,
habe es gerade selber probiert, machst Du das lokal ??
analysiere in solchen fällen bitte den quellcode, wie er im browser ankommt.
wenn immer nut stumpf berichtet wird, dass es "nicht geht", ist keine analyse möglich.
Datenbank läuft auf nem Server.
Xampp, also das Apache Zeugs habe ich lokal auf meinem PC installiert.
rufe meine scripte also über localhost/ etc. auf
hydrococcus 29-07-2005, 13:21 Kann es sein das es daran liegt, das js lokal im Explorer läuft und php auf nem Server.
Nein, das kann nicht sein. Es ist so.
Original geschrieben von hydrococcus
Nein, das kann nicht sein. Es ist so.
Detaillierte Erklärungen dazu gibt's im Zend Certification Guide.
hydrococcus 29-07-2005, 13:49 Detaillierte Erklärungen dazu gibt's im Zend Certification Guide.
..oder HIER (http://www.php-resource.de/forum/search.php?s=)im Forum.
:D
wenn das so ist, warum funktioniert es denn bei Arni?
Gibt es denn eine Möglichkeit Js auf dem Apache laufen zu lassen.
Irgendwie muss das Problem doch zu lösen sein, denn es scheint ja bei manchen Leuten zu funktionieren
so habe ich es gemacht:
$result = @ociexecute($sql_statement_update,OCI_DEFAULT);
// wenn Fehler in execution
if (!$result)
{
$err = OCIError($sql_statement_update);
$meldung = "<pre>".$err['message']."</pre>\n";
echo $meldung;
?>
<script language="JavaScript">
var Ergebnis = \"<?$meldung?>\";
document.writeln(Ergebnis);
alert(Ergebnis);
</script>
<?php
}
und egal wie ich var Ergebnis = \"<?$meldung?>\";
schreibe, es funzt nicht
var Ergebnis = "<?echo $meldung?>";
var Ergebnis = "<?echo "$meldung"?>";
var Ergebnis = "<?print $meldung?>";
geht alles nicht
Original geschrieben von wahsaga
analysiere in solchen fällen bitte den quellcode, wie er im browser ankommt
Sop sieht der Quellcode im Browser aus. Die var ist immer leer, egal wie ich sie einbinde
<script language="JavaScript">
var Ergebnis = \"\";
document.writeln(Ergebnis);
alert(Ergebnis);
</script>
Stop, hole alles zurück.
</pre>
<script language="JavaScript">
var Ergebnis = "<pre>ORA-02291: integrity constraint (...) violated - parent key not found
</pre>
";
document.writeln(Ergebnis);
alert(Ergebnis);
</script>
<html>
steht also doch was drin, nur die Ausgabe "normal" und im Alert funzt nicht
das bestätigt meine vermutung ...
Original geschrieben von galaxy2
var Ergebnis = "<pre>ORA-02291: integrity constraint (...) violated - parent key not found
</pre>
";
wenn das nicht deine anpassung für's forum ist, sind hier also zeilenumbrüche in diesem string vorhanden?
zeilenüberschreitende literale gibt es in JS nicht.
entferne also zeilenumbrüche aus dem variableninhalt, bevor du ihn als JS ausgibst, oder maskiere sie JS-gerecht.
Trage ich genau den Wert, den mir php an die js var sendet mit copy and paste in die Var zum test ein(anstatt sie mit der Fehlermeldung "dynamisch" einzulesen), dann funzt alles.
Versteh ich irgendwie nicht.
wenn php vom server kommt ist die html datei doch schon generiert, nun muss js doch die var, welche ja laut html Code richtig gebildet ist, doch auslesen können.
Warum funzt das nicht.
Stimmt da sind Zeilenumbrüche.
Danke für den Tipp, daran wird es dann wohl liegen.
Teste es direkt mal. Melde mich dann wieder
Danke,
die letzte Antwort war die entscheidende.
Der eine dämliche Zeilenumbruch war schuld. Jetzt weis ich es aber fürs nächte mal. :D
|
|