Typen mysqli und Feld
Frage
Ich würde gerne wissen, ob es eine einfache Möglichkeit, Daten aus MySQL-Tabellen mit „richtigen“ Datentypen zu holen? Was ich meine, wenn Feldtyp ist beispielsweise INT oder SMALLINT ist es möglich, diese Typen direkt zu PHP als ganzen Zahlen zu übergeben?
habe ich ein paar Suche und fand mysqli_fetch_fields, aber für SMALLIT Typ 2, für INT 3 und so weiter. Es könnte so gemacht werden, aber es sieht ziemlich ungeschickt Abhilfe. Gibt es einen besseren Weg?
Ich bin mit PHP und mysqli.
Danke.
Lösung
Der einfachste Weg ist, Ihre eigene Datenbank-Handler auf der mysqli Anrufe aufzubauen, die für Sie tut das.
Andere Tipps
http://www.php.net/ manual / en / mysqli-result.fetch-Feld-direct.php
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";
if ($result = $mysqli->query($query)) {
/* Get field information for column 'SurfaceArea' */
$finfo = $result->fetch_field_direct(1);
printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n", $finfo->type);
$result->close();
}
/* close connection */
$mysqli->close();
?>
Sie können diesen Code verwenden
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'yourtablename replace your table name' AND COLUMN_NAME = 'tablecolumnname replace your table column name';
Verwenden Sie dies, bevor Sie Ihre Haupt-Abfrage ausführen und nach, wenn Sie sich Ihre Datentyp führen Sie dann Ihren Betrieb.