PDO SQLSTATE [HY093]:参数号无效:未定义参数

时间:2017-11-27 13:55:27

标签: php mysql pdo

我知道错误意味着什么,但对于我的生活,无论我检查和重写有多难,我都找不到它。待了一会儿,需要一双新眼睛看看我哪里出错了。

更新功能

public function student_acadbg_update($acadbgID, $LRN, $gradesix, $gradesixyear, $gsixawards, $gradeten, $gradetenyear, $gtenawards, $orgs, $extraawards)
{
    try
    {
        $query=$this->db->prepare("UPDATE tb_student_acadbg SET LRN = :LRN,
                                                        gradesix = :gradesix,
                                                        gradesixyear = :gradesixyear,
                                                        gsixawards = :gsixawards,
                                                        gradeten = :gradeten,
                                                        gradetenyear = :gradetenyear,
                                                        gtenawards = :gtenawards,
                                                        orgs = :orgs,
                                                        extraawards = :extrawards
                                                        WHERE acadbgID = :acadbgID");
        $query->bindParam(":LRN", $LRN, PDO::PARAM_STR);
        $query->bindParam(":gradesix", $gradesix, PDO::PARAM_STR);
        $query->bindParam(":gradesixyear", $gradesixyear, PDO::PARAM_STR);
        $query->bindParam(":gsixawards", $gsixawards, PDO::PARAM_STR);
        $query->bindParam(":gradeten", $gradeten, PDO::PARAM_STR);
        $query->bindParam(":gradetenyear", $gradetenyear, PDO::PARAM_STR);
        $query->bindParam(":gtenawards", $gtenawards, PDO::PARAM_STR);
        $query->bindParam(":orgs", $orgs, PDO::PARAM_STR);
        $query->bindParam(":extraawards", $extraawards, PDO::PARAM_STR);
        $query->bindParam(":acadbgID", $acadbgID, PDO::PARAM_INT);
        $query->execute();

        return true;
    }
    catch(PDOException $e)  
    {
    echo $e->getMessage();
    return false;
    }   
}

收集用户输入的位置以及调用函数的位置

if(isset($_POST['btn-update']))
{
$LRN = $_GET['LRN'];
$acadbgID = $_POST['acadbgID'];
$gradesix = $_POST['gradesix'];
$gradesixyear = $_POST['gradesixyear'];
$gsixawards = $_POST['gsixawards'];
$gradeten = $_POST['gradeten'];
$gradetenyear = $_POST['gradetenyear'];
$gtenawards = $_POST['gtenawards'];
$orgs = $_POST['orgs'];
$extraawards = $_POST['extraawards'];

if($crud->student_acadbg_update($acadbgID, $LRN, $gradesix, $gradesixyear, $gsixawards, $gradeten, $gradetenyear, $gtenawards, $orgs, $extraawards))
{
    $msg = "<div class='alert alert-info'>
            <strong>WOW!</strong> Record was inserted successfully! <a href='student.php'>Click here to see!</a>
            </div>";
}
else
{
    $msg = "<div class='alert alert-warning'>
            <strong>SORRY!</strong> you fucked up !
            </div>";
     }
}

这是用户完成注册的两部分过程的第二部分,LRN是我将主要参考点绑定到特定人员的各种其他表条目和详细信息。我根据LRN从数据库中获取数据没有问题,但由于某种原因,此更新无效,而我的10多个其他CRUD功能都正常工作。我只是想不出来。

我最初跳过'acadbgID'变量,因为它只是我的数据库中的一个自动增量字段,我还没有真正投入使用。我在其他更新功能中跳过了类似的自动增量字段,但出于挫败感,我决定尝试将其放入但仍然没有雪茄。

对不起,如果它有点乱,我只是把它放在一起测试核心功能,抛光将是当一切实际工作正常。如果我需要添加任何细节,请告诉我。提前谢谢。

P.S。如果有人看到任何不良做法,请指出它们,我仍然在学习,所以我确信还有改进的余地。

0 个答案:

没有答案