Php 如何将true或false显示为JSON结果| PDO

Php 如何将true或false显示为JSON结果| PDO,php,pdo,Php,Pdo,目前它的格式如下: [{"person":"Jake"}] $stmt = $pdo->prepare( 'SELECT `person`, sum( `type` = "Broken" ) as `typeNumber` FROM `Table1` WHERE (`name` = :name AND (`job` = "collection") gr

目前它的格式如下:

[{"person":"Jake"}]


$stmt = $pdo->prepare(

'SELECT `person`,
       sum( `type` = "Broken" ) as `typeNumber`
            FROM `Table1`
            WHERE (`name` = :name
            AND
            (`job` = "collection")
            group by `person` ');

      $stmt->execute([
          'name' => $_POST['name']
          ]);

      $row = $stmt->fetchAll(PDO::FETCH_ASSOC);

      echo json_encode($row);
如果选择了1个或多个记录,我希望{true}出现,否则{false}应该是默认值


这两个查询都不需要方括号

您可以使用
EXISTS
查询

$stmt = $pdo->prepare("
    SELECT EXISTS (
        SELECT 1
        FROM Table1
        WHERE name = :name AND job = 'collection'
    ) AS found");
$stmt->execute(['name' => $_POST['name']]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo json_encode($row['found'] == 1);
MySQL将
TRUE
编码为
1
FALSE
编码为
0
,比较会将其转换为JSON
TRUE/FALSE


如果只关心是否有匹配的行,则无需对结果进行分组或求和。

括号在查询中不平衡。