Php PDO脚本中的mySQL语法问题
这个PDO脚本似乎编写正确,但我一直收到一个语法错误,没有生成json数组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
$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是标准的。。所以这个数字没有双引号。。只有字符串有双引号我可以强制数字也有双引号吗?