Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PDO SQLSRV und PDO MySQL geben Strings zurück, wenn int oder float abgerufen werden

Mit PDO MySQL der zugrunde liegenden C-API gibt eine Struktur von Strings zurück beim Aufruf von mysql_fetch_row() . Da PHP eine lose typisierte Sprache ist, die bei Bedarf automatisch in Integer umwandelt, vermute ich, dass die PDO-Entwickler sich dafür entschieden haben, sie so zurückzugeben, wie sie sind. Dies wäre schneller, als jeden Spaltentyp nachzuschlagen und dynamisch in eine Ganzzahl / Float umzuwandeln.

Insbesondere in Bezug auf Float kann sich ein nativer PHP-Float von dem ursprünglich gespeicherten Wert unterscheiden, wenn er aus einer Zeichenfolge konvertiert wird. Beispielsweise unterstützen MySQL-Spalten eine Genauigkeit, während PHP-Floats dies nicht tun. Floats als Zeichenfolge aus der Datenbank zu belassen, ermöglicht Ihnen mehr Kontrolle (z. B. die Wahl, eine Bibliothek zu verwenden mit unterschiedlicher Genauigkeit).