Как отобразить true или false как результат JSON |PDO - PullRequest
0 голосов
/ 21 октября 2019

В настоящее время он отформатирован следующим образом:

[{"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} должно быть по умолчанию.

Без квадратаскобки должны окружать либо

1 Ответ

0 голосов
/ 21 октября 2019

Вы можете использовать запрос 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.

Если вам просто важно, совпадают ли какие-либо строки, нет необходимости группировать результаты или суммировать что-либо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...