php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Fehlermeldung von MySQL per PHP aufdröseln


 
Kropff
14-11-2008, 20:50 
 
wenn man einen fehlerhaften Query an mysql abschickt, so bekommt man zum beispiel folgende meldung:
ERROR 1136 (21S01): Column count doesn't match value count at row 1
die 1136 fange ich per mysql_errno ab und die letzte mit mysql_error. aber was ist mit dem fünfstelligen zahlencode (21501), der ja wohl aus kompatibilitätsgründen (ansi-sql) eingebaut wurde. gibt es dafür auch eine php-funktion, um dem auszulesen. habe bisher leider dazu nichts gefunden.

peter

 
PHP-Desaster
14-11-2008, 21:30 
 
PDO (http://de.php.net/manual/de/pdo.errorcode.php) kann das. Selbst MySQLi (http://de.php.net/manual/de/mysqli.sqlstate.php) konnte das schon. Für die (inzwischen nicht mehr im PHP-Kern enthaltene) mysql-Extension habe ich nichts gefunden.

 
TheFish511
14-11-2008, 21:30 
 
Gibt es imho für PHP(bzw. für standard mysql_, PDO kann das glaube ich) nicht. MySQL bietet zwar eine Funktion an (mysql_sqlstate()), diese ist in PHP(bei der mysql-extension) aber nicht enthalten.

 
Kropff
14-11-2008, 21:49 
 
erst mal danke für die antworten. pdo interessiert mich erst mal nicht. es geht nur um native funktionen von php. und mysqli kommt auch nicht in frage. stellt euch einfach vor, wir hätten das jahr 2003 :) .

peter

 
h3ll
14-11-2008, 22:01 
 
PDO ist nativ in PHP.

 
TheFish511
14-11-2008, 22:11 
 
stellt euch einfach vor, wir hätten das jahr 2003 .
PDO ist nativ in PHP.
Im Jahre 2003 aber noch nicht. ;)

 
h3ll
14-11-2008, 22:14 
 
Original geschrieben von TheFish511
Im Jahre 2003 aber noch nicht. ;)

Aber welchen Sinn soll das haben? Wir haben nun mal nicht 2003, sondern 2008.

 
asp2php
14-11-2008, 22:19 
 
Original geschrieben von h3ll
Aber welchen Sinn soll das haben? Wir haben nun mal nicht 2003, sondern 2008.

Der Kropff akzeptiert sein Alter immer noch nicht und versucht daher immer aufs Neue sich verjüngern zu lassen :D ... sei doch froh, dass er nicht 1970 verlangt :p

 
ghostgambler
14-11-2008, 22:21 
 
Gabs damals schon ANSI? Sonst ignorier das doch auch einfach... *zuck*
*pro "Verbrennt den php4 source"-Partei*

 
TheFish511
14-11-2008, 22:33 
 
2003 gab es immerhin schon die Beta von PHP 5. :D

 
PHP-Desaster
15-11-2008, 02:18 
 
Sorry, aber wenn es noch so ein Uralt-Code sein soll, dann wirst du wohl die Fehlermeldung entsprechend parsen müssen.

 
ghostgambler
15-11-2008, 10:05 
 
Original geschrieben von PHP-Desaster
Sorry, aber wenn es noch so ein Uralt-Code sein soll, dann wirst du wohl die Fehlermeldung entsprechend parsen müssen.
Ich glaub den Ansi-Fehler kriegt man in so altem Code gar nicht.
Das oben zitierte wird wohl die Ausgabe des cmd-Clients sein. Man hat ja in PHP nicht die Möglichkeit sich diesen String in der Form vollständig zurück geben zu lassen.

 
Kropff
15-11-2008, 16:11 
 
mir geht es nicht um uralt-code sondern um etwas prinzipielles. ich spezifiziere es mal. gibt es eine funktion in php außer dem weg über pdo, um die "ansi"-meldung zu bekommen. offenbar nicht. das ganze ist für ein dödel-tutorial, an dem ich gerade sitze. und da ist noch nichts mit oop.

Original geschrieben von asp2php
Der Kropff akzeptiert sein Alter immer noch nicht und versucht daher immer aufs Neue sich verjüngern zu lassen :D ... sei doch froh, dass er nicht 1970 verlangt :p
das musst du alter sack gerade sagen. du liegts doch auch schon bald in der kiste. :D

peter


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:39 Uhr.