【发布时间】:2018-10-05 04:55:21
【问题描述】:
我正在尝试使用 PDO 创建查询,其中查询包含子查询。代码不起作用。使用工作台,我可以进行查询并且它确实执行了。
我觉得在使用 PDO 时导出表时存在细微差别。
$turn = 1;
$phase = -1;
$status = "waiting";
$gameid = 1;
$stmt = $this->connection->prepare("
UPDATE playerstatus
SET
turn = :turn,
phase = :phase,
status = :status,
value = value + (SELECT reinforce FROM games where id = :gameid)
WHERE
gameid = :gameid
");
$stmt->bindParam(":turn", $turn);
$stmt->bindParam(":phase", $phase);
$stmt->bindParam(":status", $status);
$stmt->bindParam(":gameid", $gameid);
$stmt->execute();
我尝试了多种调整,执行时根本失败。
编辑错误:
致命错误:未捕获的 PDOException:SQLSTATE[HY093]:无效参数号
【问题讨论】:
-
“它在执行时就失败了”。它不只是失败。它抛出一个错误,将错误发布给我们!
-
冷静一下。致命错误:未捕获的 PDOException:SQLSTATE[HY093]:无效参数号
-
答案就在错误上。您的查询中有 5 个参数,但您只绑定了 4 个参数(您必须重复
:gameid)