Php SQLSTATE[HY093]:插入的参数编号无效
我需要在Php SQLSTATE[HY093]:插入的参数编号无效,php,mysql,Php,Mysql,我需要在妇科表中插入,该表没有行 会话变量在另一页中为2 $_SESSION ["id_patient"] = 2; <?php $insert = $db->prepare("INSERT INTO gynecology(id_patient, nvisita, date_visit, background, reason_visit, exploration, exploration_comp, diagnosis, treatment)
妇科
表中插入,该表没有行
会话变量在另一页中为2
$_SESSION ["id_patient"] = 2;
<?php
$insert = $db->prepare("INSERT INTO gynecology(id_patient, nvisita, date_visit, background, reason_visit, exploration, exploration_comp, diagnosis, treatment)
SELECT IFNULL(gy.id_patient,:id_patient), IFNULL(max(gy.nvisita),0)+1, (now()), :background, :reason_visit, :exploration, :exploration_comp, :diagnosis, :treatment
FROM gynecology gy, patients pa
WHERE gy.id_patient = pa.id
AND PA.ID = :id_patient");
$insert->bindParam(":background", $background);
$insert->bindParam(":reason_visit", $reason_visit);
$insert->bindParam(":exploration", $exploration);
$insert->bindParam(":exploration_comp", $exploration_comp);
$insert->bindParam(":diagnosis", $diagnosis);
$insert->bindParam(":treatment", $treatment);
$insert->bindParam(":id_patient", $_SESSION["id_patient"]);
$insert->execute();
?>
$\u会话[“id\u患者”]=2;
患者
表包含患者的id
谢谢。您的参数匹配错误。对此进行更改:
$insert = $db->prepare("INSERT INTO gynecology(id_patient, nvisita, date_visit, background, reason_visit, exploration, exploration_comp, diagnosis, treatment)
SELECT IFNULL(gy.id_patient,:id_patient), IFNULL(max(gy.nvisita),0)+1, (now()), :background, :reason_visit, :exploration, :exploration_comp, :diagnosis, :treatment
FROM gynecology gy, patients pa
WHERE gy.id_patient = pa.id
AND PA.ID = :id_patient");
// this first parameter is missing
$insert->bindParam(":id_patient", $_SESSION["id_patient"]);
// the other parameters you have
$insert->bindParam(":background", $background);
$insert->bindParam(":reason_visit", $reason_visit);
$insert->bindParam(":exploration", $exploration);
$insert->bindParam(":exploration_comp", $exploration_comp);
$insert->bindParam(":diagnosis", $diagnosis);
$insert->bindParam(":treatment", $treatment);
$insert->bindParam(":id_patient", $_SESSION["id_patient"]);
您正在错误匹配参数。对此进行更改:
$insert = $db->prepare("INSERT INTO gynecology(id_patient, nvisita, date_visit, background, reason_visit, exploration, exploration_comp, diagnosis, treatment)
SELECT IFNULL(gy.id_patient,:id_patient), IFNULL(max(gy.nvisita),0)+1, (now()), :background, :reason_visit, :exploration, :exploration_comp, :diagnosis, :treatment
FROM gynecology gy, patients pa
WHERE gy.id_patient = pa.id
AND PA.ID = :id_patient");
// this first parameter is missing
$insert->bindParam(":id_patient", $_SESSION["id_patient"]);
// the other parameters you have
$insert->bindParam(":background", $background);
$insert->bindParam(":reason_visit", $reason_visit);
$insert->bindParam(":exploration", $exploration);
$insert->bindParam(":exploration_comp", $exploration_comp);
$insert->bindParam(":diagnosis", $diagnosis);
$insert->bindParam(":treatment", $treatment);
$insert->bindParam(":id_patient", $_SESSION["id_patient"]);
问题是什么?它无法插入:Query failedSQLSTATE[HY093]:无效参数编号您的
bindParam()
少于查询中的实际:params
。请看我的答案。问题是什么?它无法插入:Query failedSQLSTATE[HY093]:无效参数编号您的bindParam()
少于查询中的实际:params
。请看我的答案。这条评论怎么办?请告诉我们这个答案是否解决了您的问题,如果是,请投票并检查它是否正确。谢谢:)生成此错误:查询失败SQLSTATE[HY000]:一般错误:2031Try删除$insert->execute()
。似乎bind[*]()
和execute()
不能混用。如果您没有告知WHERE子句是否有效,但我需要参考患者ID,那么该如何处理此评论?请告诉我们此答案是否解决了您的问题,如果是,请向上投票并将其作为正确答案进行检查。谢谢:)生成此错误:查询失败SQLSTATE[HY000]:一般错误:2031Try删除$insert->execute()
。似乎bind[*]()
和execute()
不能混用。如果您没有通知WHERE子句它是否有效,但我需要参考患者id