php - 让 mysql_fetch_assoc 自动检测返回数据类型?

标签 php mysql database types

在 PHP 中使用 mysql_fetch_assoc 时,如何让它返回正确的数据类型?现在它似乎将所有内容都转换为字符串,我更愿意将 Int 保留为 Ints,并以某种方式将日期/时间指定为对象或以某种方式不同于字符串。

这样做的原因是我使用 PHP 作为 Flex 应用程序的后端,而 Flex 具有一些功能,例如自动检测返回类型,如果所有内容都以字符串形式出现,这些功能将无法正常工作。

最佳答案

我认为这里的一个好策略是以编程方式确定表中每一列的数据类型,并相应地转换返回的结果。这将使您能够以更加一致和简单的方式与数据库进行交互,同时仍然为您提供所需的控制权,让您的变量存储正确的数据类型。

一种可能的解决方案:您可以使用 mysql_fetch_field() 来获取一个对象,该对象保存有关表列的元数据,然后将您的字符串转换回所需的类型。

//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

可在此处找到完整示例:http://us2.php.net/manual/en/function.mysql-fetch-field.php

由于 PHP 是松散类型的,因此您应该相对容易地使用它。

如果您正在使用 OO(面向对象)技术,您可以在 setter() 方法中创建一个具有此功能的类,这样您就不必重复代码。

关于php - 让 mysql_fetch_assoc 自动检测返回数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/936350/

相关文章:

php - 计算页面上执行的 MySQL 查询数

php - 识别相似图像的好方法?

node.js - 使用 Express 和 MongoDB 从多个单独的集合中获取数据

php - Laravel-如何为用户授予多个角色?

php - 如何转义 .htaccess 中的井号 (#) 字符?

php - AJAX 登录 - session 问题

mysql - MySQL中的UUID性能?

mysql - 具有非自动增量主键的 Simple.Data (uuid_short)

MySQL - 多次计数、最小值、最大值查询

java - MS ACCESS jdbc.odbc 连接。未找到数据源名称/未指定默认驱动程序?