Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO脚本中的mySQL语法问题_Php_Mysql_Pdo - Fatal编程技术网

Php PDO脚本中的mySQL语法问题

Php PDO脚本中的mySQL语法问题,php,mysql,pdo,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

这个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]

记住,命名参数需要执行数组键中的
所以
: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);

添加完整的错误消息。(不仅仅是第一部分)stat=“Ready”或status=“Ready”(选择和位置不同)?尝试更改
状态中的
=“Ready”
=“Ready”(单引号)@scaisEdge这样做是否正确,
$stmt=$pdo->query
查询,然后执行
$stmt->execute
?@scaisEdge我得到的整个错误消息是:
致命错误:未捕获的异常'PDOException',带有消息'SQLSTATE[HY000]:一般错误:2031'
谢谢,这很有效,问得很快,如何使json数组中的所有值都显示为字符串?在PDO的末尾有什么标准吗?@JamieMills for json string您可以使用json_encode($row),如果我的答案是正确的,请(过去15分钟)将其标记为已接受…请看这里如何。。为jsonI do json_encode更新的答案($row);但即使我的SELECT查询选择了数字,我也希望它们周围有双引号。示例:
“2”
不是
2
为什么要投否决票。。json是标准的。。所以这个数字没有双引号。。只有字符串有双引号我可以强制数字也有双引号吗?