php - mysql_query 只为 int/fload 数据库类型返回字符串类型

标签 php mysql

我正在尝试处理 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/

相关文章:

php - 插入查询未向数据库中插入任何内容

php - 检查答案并从数据库验证它在 PHP 中是否正确

php - Laravel 文件夹结构

mysql - 选择查询中是否检查空条件

java - 串联sql语句插入

mysql - 用于带有存储例程的 mysql 的 Liquibase updateSQL

php - Magento 站点地图导致错误

php - 找不到图像路径的 URL

MySQL 触发器不工作。可能是什么问题?

php - 通过删除 safe_mode,PHP 5.4 的安全性在哪里