将tinyint转换为boolean,以便以后与php json_encode一起使用

时间:2017-07-04 18:12:52

标签: php mysql json

我有一个表格字段,其类型为tinyint。因此,mysql中的值可以存储为1的{​​{1}}和true的{​​{1}}。

我使用php的mysqli模块来获取数据。 e.g。

0

现在我得到了该表的数据行。但是类型为false的字段是整数而不是布尔值。 问题来自php的$result = $mysqli->query("SELECT * FROM table_x_y"); $row = $result->fetch_assoc() 。我想创建一个JSON对象。但是布尔字段仍然是整数(在tinyint中),并且编码函数将它们视为整数而不是布尔值。

json对象的结果看起来像

json_encode

但我应该看起来像

$row

信息 [ { "foo": 1, "bar": 2 }, { "foo": 0, "bar": 1 } ] 数据类型为[ { "foo": true, "bar": 2 }, { "foo": false, "bar": 1 } ] foo数据类型为tinyint

1 个答案:

答案 0 :(得分:1)

您需要在创建动态数组时明确地将$row['foo']强制转换为布尔值,如下所示:

$array = array();
$result = $mysqli->query("SELECT * FROM table_x_y");
while($row = $result->fetch_assoc()){
    $array[] = array('foo' => (bool)$row['foo'], 'bar' => $row['bar']);
}
echo json_encode($array);