 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
20.11.2006, 13:13
|
#1
|
|
TP-Insider
Registriert seit: Dec 2001
Ort: Oberfranken
|
__line__
Hallo,
meine SQL Abfrage lautet:
$variable=mysql_query($sql) or die (mysql_error());
Wenn das Query fehlerhaft ist wird der Fehler mittels mysql_error ausgegeben. Wo muss ich __LINE__ plazieren damit die Fehlermeldung und die betroffene Zeile ausgegeben wird???
|
|
|
20.11.2006, 13:44
|
#2
|
|
TP-Supporter
Registriert seit: Dec 2005
|
$variable = @mysql_query($sql) or die (mysql_error() . ' @file ' . __file__ . ' in line ' . __line__);
|
|
|
20.11.2006, 13:51
|
#3
|
|
TP-Insider
Registriert seit: Dec 2001
Ort: Oberfranken
|
ok, dieser Code funktioniert
PHP-Code:
die (mysql_error().__LINE__);
warum funktioniert dieser Code nicht:
PHP-Code:
die (__LINE__);
oder
PHP-Code:
die (mysql_error(__LINE__));
|
|
|
20.11.2006, 14:16
|
#4
|
|
TP-Specialist
Registriert seit: Mar 2005
Ort: Unterfranken
|
mysql_error(__LINE__) kann deshalb nicht funktionieren, weil mysql_error() als optionales Argument eine MySQL-Verbindungskennung erwartet, und __LINE__ ist eine Zahl. mysql_error() gibt eine Zeichenkette aus, diese wird mit Hilfe des Punkts mit __LINE__ (die in eine Zeichenkette umgewandelt wird) konkateniert.
Warum __LINE__ alleine nicht funktioniert ist mir nicht klar, es sei denn, du hast einen Tippfehler gemacht.
|
|
|
20.11.2006, 14:32
|
#5
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Ich habe noch nie __LINE__ und oder __FILE__ angegeben aber es erschien noch immer in der Meldung.
Da __LINE__ keine Variable sondern ein Platzhalter ist,
versuche es doch mal mit: die("__LINE__")
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
20.11.2006, 15:58
|
#6
|
|
TP-Insider
Registriert seit: Dec 2001
Ort: Oberfranken
|
Zitat:
|
Zitat von 321
versuche es doch mal mit: die("__LINE__")
|
Als Ausgabe bekomme ich: __LINE__
|
|
|
20.11.2006, 18:13
|
#7
|
|
TP-Specialist
Registriert seit: Mar 2005
Ort: Unterfranken
|
Zitat:
|
Zitat von 321
Da __LINE__ keine Variable sondern ein Platzhalter ist
|
OK, __LINE__ ist keine Variable sondern eine magische Konstante -- also eine Konstante, die sich variiert. Konstanten, im Gegensatz zu echten Variablen, werden auch innerhalb von doppelten Anführungszeichen nicht geparst, weswegen die("__LINE__") auch nicht funktionieren kann.
|
|
|
20.11.2006, 22:09
|
#8
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
hab nun das bei php.net gefunden:
PHP-Code:
die ("Error" . " File: " . __FILE__ . " on line: " . __LINE__);
Ich würde aber noch mysql_error() dran hängen.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
20.11.2006, 23:52
|
#9
|
|
TP-Specialist
Registriert seit: Mar 2005
Ort: Unterfranken
|
Ja... so weit waren wir schon...
|
|
|
21.11.2006, 10:24
|
#10
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Ja? Bislang war doch alles noch unklar!
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
21.11.2006, 11:50
|
#11
|
|
TP-Specialist
Registriert seit: Mar 2005
Ort: Unterfranken
|
Die Frage hat sich fast geklärt. Die Frage, die noch nicht geklärt ist:
Warum funktioniert das hier:
PHP-Code:
die(mysql_error()).__LINE__);
...aber nicht das hier:
Laut der Dokumentation, müsste die zweite Zeile funktionieren: Sie gibt den Wert von __LINE__ aus und bricht die Ausführung des Skripts ab -- zwar nicht sehr hilfreich, aber es gibt keinen Grund, den ich sehen kann, warum das nicht funktionieren soll.
|
|
|
21.11.2006, 12:48
|
#12
|
|
TP-Senior
Registriert seit: May 2006
Ort: Dresden
|
Wird die Konstante __LINE__ vielleicht erst in der Funktion mysql_error() mit einem Wert belegt? Das würde erklären, warum eine Ausgabe im Anschluss an den Funktionsaufruf funktioniert, ohne vorherigen Funktionsaufruf jedoch nicht.
|
|
|
21.11.2006, 14:45
|
#13
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
@rewboss:
vermutlich weil die 'magische Konstante' nicht vom Type string ist,
ein solcher aber von die() erwartet wird.
mysql_error() hingegen gibt einen String zurück und an den kann __LINE__ angefügt werden.
die("".__LINE__) sollte auch funktionieren, wenn ich Recht habe.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:31 Uhr.
|
 |