Datentypen in Ergebnismengen
Dirk
- php
Hallo,
nachdem ich sowohl bei Google als auch im Archiv nicht fündig geworden bin, hoffe ich jetzt mal auf eure Hilfe.
Ich lese aus PHP eine beliebige Spalte aus MySql aus, welche innerhalb der DB den Datentyp INT hat.
Wenn ich nun in PHP den Datentyp der auswerte, erhalte ich bei is_string() TRUE?!
Versteh ich nicht, wird denn dieses eh überflüssige Typecasting von PHP selbst bei den SQL Ergebnismengen durchgeführt? Oder habe ich hier einen Fehler meinerseits vorliegen (was ich nicht glaube)?
Also nochmal:
In der DB ist eine Tabelle mit einer INT Spalte. Nehmen wir mal die Spalte anzahl. Dort ist der Wert 3 drin - nicht "3".
In PHP schicke ich ein SQL Statement hoch, welches mir ein Ergebnis von dieser Spalte zurückliefert und is_string($nZeile['anzahl']) liefert true...
Was passiert hier?
Gruß und danke
Dirk
In PHP schicke ich ein SQL Statement hoch, welches mir ein Ergebnis von dieser Spalte zurückliefert und is_string($nZeile['anzahl']) liefert true...
Was passiert hier?
Ich fürchte, dass die Ergebnisse immer Strings sind, die MySQL zurückliefert, was dieses Script beweisen kann!?
$res = mysql_query ("SELECT * FROM deineTabelle LIMIT 1");
while ($erg = mysql_fetch_assoc($res)) {
foreach ($erg as $key => $value) {
echo $key ."[".gettype($key)."]". " Typ : ". $value . "(".gettype($value).")\n<br>";
}
}
Ich glaube das ist einfach so...
Gruß
Maik
Gruß und danke
Dirk
Ich glaube das ist einfach so...
Danke.
Oh man, ich hasse diesen Mist. Bin es bisher immer gewohnt gewesen, mich selbst um die Datentypen zu kümmern.
Jetzt versteh ich auch, warum man manchmal == statt === verwenden muss, wenn man nicht einen Heidenaufwand treiben will, was die Datentypkonvertierung angeht.
Na, dann will ich mal...
Gruß
Dirk
Hello,
die Spaltentypen kannst Du mit
$sql = "show columns from $table";
abfragen .
Harzliche Grüße aus http://www.annerschbarrich.de
Tom