sql >> Databáze >  >> RDS >> Mysql

Nechat mysql_fetch_assoc automaticky detekovat návratové datové typy?

Myslím, že dobrou strategií je programově určit datový typ každého sloupce v tabulce a podle toho přenést vrácené výsledky. To vám umožní pracovat s vaší databází konzistentnějším a jednodušším způsobem a zároveň vám poskytne kontrolu, kterou potřebujete k tomu, aby vaše proměnné ukládaly správný datový typ.

Jedno z možných řešení: Můžete použít mysql_fetch_field() k získání objektu, který obsahuje metadata o sloupci tabulky, a poté přenést váš řetězec zpět na požadovaný 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

Úplný příklad lze nalézt zde:http://us2 .php.net/manual/en/function.mysql-fetch-field.php

Vzhledem k tomu, že PHP je napsáno volně, měli byste to mít relativně snadné.

Pokud používáte OO (objektově orientované) techniky, můžete vytvořit třídu s touto funkcí v metodách setter(), takže nemusíte mít duplicitní kód.



  1. Dynamický oddíl tabulky Oracle

  2. Postgres:jak zaokrouhlíte časové razítko nahoru nebo dolů na nejbližší minutu?

  3. SQLite3 (nebo obecné SQL) načte n-tý řádek výsledku dotazu

  4. LongOpsWatcher v SQL Dev