Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Fehler bei OCIExecute [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Fehler bei OCIExecute


 
galaxy2
29-07-2005, 11:24 
 
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

 
wahsaga
29-07-2005, 11:27 
 
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 ...?

 
galaxy2
29-07-2005, 11:37 
 
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.

 
galaxy2
29-07-2005, 11:49 
 
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>

 
Arni
29-07-2005, 13:05 
 
vielleicht so ??


<script language="JavaScript">

var test = "<?echo $message; ?>";


alert(test);
</script>

 
galaxy2
29-07-2005, 13:08 
 
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?

 
Arni
29-07-2005, 13:14 
 
doch das geht,
habe es gerade selber probiert, machst Du das lokal ??

 
wahsaga
29-07-2005, 13:16 
 
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.

 
galaxy2
29-07-2005, 13:17 
 
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.

 
uschi
29-07-2005, 13:44 
 
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

 
galaxy2
29-07-2005, 13:52 
 
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

 
wahsaga
29-07-2005, 13:54 
 
Original geschrieben von wahsaga
analysiere in solchen fällen bitte den quellcode, wie er im browser ankommt

 
galaxy2
29-07-2005, 13:57 
 
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>

 
galaxy2
29-07-2005, 13:59 
 
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

 
wahsaga
29-07-2005, 14:10 
 
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.

 
galaxy2
29-07-2005, 14:11 
 
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.

 
galaxy2
29-07-2005, 14:12 
 
Stimmt da sind Zeilenumbrüche.

Danke für den Tipp, daran wird es dann wohl liegen.
Teste es direkt mal. Melde mich dann wieder

 
galaxy2
29-07-2005, 14:17 
 
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

 
Arni
01-08-2005, 13:06 
 
na geht doch ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:29 Uhr.