首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP mysql_fetch_object,所有属性都是字符串?

问PHP mysql_fetch_object,所有属性都是字符串?
EN

Stack Overflow用户
提问于 2013-05-18 01:41:37
回答 2查看 1.2K关注 0票数 0

有人能帮上忙吗?

mysql_fetch_object以字符串类型返回所有属性。我需要将对象转换为JSON,但保留数值和布尔值。

对于所有查询,解析得到的JSON都非常慢。这是我的查询var_dump的结果。

代码语言:javascript
复制
$obj = mysql_fetch_object($result)
var_dump($obj);
...
object(stdClass)[10]
public 'idUsuario' => string '1' (length=1)
public 'Email' => string 'user@theemail.com.ar' (length=23)
public 'Password' => string '1234' (length=4)
public 'Nombre' => string 'Sebastián' (length=10)
public 'Apellido' => string 'Black' (length=7)
public 'Habilitado' => string '1' (length=1)
...

'Habilitado‘属性是DataBase中的布尔值(我已经尝试过BIT数据类型,但结果相同)。

然后是使用json_encode的JSON:

代码语言:javascript
复制
{"DTOList":
{"idUsuario":"1",
"Email":"user@theemail.com.ar",
"Password":"1234","Nombre":"Sebasti\u00e1n","Apellido":"Black","Habilitado":"1"...
EN

回答 2

Stack Overflow用户

发布于 2013-05-18 01:44:26

这是正确的。除了按原样传递的NULL之外,MySQL以字符串的形式返回所有内容。

另一件要注意的事情是,BOOLEAN只是TINYINT(1)的别名,其中0是FALSE,所有其他值都是TRUE。

票数 2
EN

Stack Overflow用户

发布于 2013-05-18 02:32:44

我也遇到过类似的问题,尽管我在PDO中使用的是FETCH_ASSOC而不是FETCH_OBJ。您可以“转换”(提示)这些字段,它们将按照您期望的那样在JSON中显示出来。在您的示例中,这可能会起作用(将其放在json_encode之前):

代码语言:javascript
复制
$obj->idUsuario = (int) $obj->idUsuario;
$obj->Habilitado = (bool) $obj->Habilitado;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16614993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档