我正在尝试处理 MySQL 选择结果。我的问题是,下面的示例代码仅返回一个包含所有值的数组 string-type 即使对于包含整数和 float 的列也是如此。
$sth = mysql_query($selectstr);
$rows = array();
while($r = mysql_fetch_row($sth)) {
foreach ($r as $value) echo gettype($value), "\n";
}
如果我将 $r
中的数组传递给 json_encode(..)
,我会在输出中得到 JavaScript 字符串值(用引号括起来),而不是未加引号的数字值 (我需要什么)。
如何查询 MySQL 数据库并获取包含具有正确类型的值的行数组?
更新:删除了 mysql_fetch_row(..)
的第二个参数。最初我使用 mysql_fetch_array(..)
接受第二个参数。
最佳答案
mysql_fetch_*
函数都不应该根据其列的类型转换值。对于某些人来说,PHP 甚至不提供匹配的内部数据表示(想想:BIGINT
)。
如果您知道查询结果的数据类型,则需要手动转换它们。否则mysql_field_type()
会提示您将结果转换为哪种类型。
关于php - mysql_query 只为 int/fload 数据库类型返回字符串类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8852814/