Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Fazer o mysql_fetch_assoc detectar automaticamente os tipos de dados de retorno?


Acho que uma boa estratégia aqui é determinar programaticamente o tipo de dados de cada coluna em uma tabela e lançar os resultados retornados de acordo. Isso permitirá que você interaja com seu banco de dados de maneira mais consistente e simples, enquanto ainda lhe dá o controle necessário para que suas variáveis ​​armazenem o tipo de dados correto.

Uma solução possível: Você pode usar mysql_fetch_field() para obter um objeto que contém metadados sobre a coluna da tabela e então converter sua string de volta para o tipo desejado.
//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

Um exemplo completo pode ser encontrado aqui:http://us2 .php.net/manual/en/function.mysql-fetch-field.php

Uma vez que o PHP é livremente tipado, você deve ter um tempo relativamente fácil com isso.

Se você estiver usando técnicas OO (orientadas a objetos), poderá criar uma classe com essa funcionalidade nos métodos setter() para não precisar ter código duplicado.