PDO脚本中的mySQL语法问题

时间:2019-08-23 13:10:21

标签: php mysql pdo

此PDO脚本似乎编写正确,但是我一直收到语法错误,没有生成json数组。

  $stmt = $pdo->query('SELECT `person`,
       sum( `stat` = "Ready" ) as Num1
        from `Table1`
        WHERE `code` = :code AND
        (`stat` = "Ready")
        group by `person`
        Order by `Num1` DESC ');

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

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

  echo json_encode($row);

这是我收到的错误消息:

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]

1 个答案:

答案 0 :(得分:-1)

请记住,命名参数需要:,因此在执行数组键时:code而不是code

$stmt = $pdo->query('SELECT `person`,
       sum( `stat` = "Ready" ) as Num1
        from `Table1`
        WHERE `code` = :code AND
        (`stat` = "Ready")
        group by `person`
        Order by `Num1` DESC ');

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

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

对于json,您可以

  $myJson = json_encode($row);