sql >> Databasteknik >  >> RDS >> Mysql

Få mysql_fetch_assoc att automatiskt upptäcka returdatatyper?

Jag tror att en bra strategi här är att programmässigt bestämma datatypen för varje kolumn i en tabell, och kasta de returnerade resultaten därefter. Detta gör att du kan interagera med din databas på ett mer konsekvent och enkelt sätt samtidigt som du får den kontroll du behöver för att dina variabler ska lagra rätt datatyp.

En möjlig lösning: Du kan använda mysql_fetch_field() för att få ett objekt som innehåller metadata om tabellkolumnen och sedan kasta tillbaka din sträng till önskad typ.

//run query and get field information about the row in the table
$meta = mysql_fetch_field($result, $i);

//get the field type of the current column
$fieldType = $meta->type

Ett fullständigt exempel finns här:http://us2 .php.net/manual/en/function.mysql-fetch-field.php

Eftersom PHP är löst skrivet bör du ha relativt lätt för detta.

Om du använder OO-tekniker (objektorienterade) kan du skapa en klass med denna funktion i setter()-metoderna så att du inte behöver ha dubblettkod.



  1. Kommandon är osynkroniserade; du kan inte köra det här kommandot nu SQL

  2. Hur spolar jag PRINT-bufferten i TSQL?

  3. docker-compose mysql init sql körs inte

  4. Läs en textfil och överför innehållet till mysql-databasen