mysql_query仅返回int / fload数据库类型的字符串类型

我正在尝试处理MySQL选择结果.我的问题是,即使对于包含整数和浮点数的列,下面的示例代码也仅返回包含所有值的字符串类型的数组.

$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()提示您将结果转换为哪种类型.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...