PDO MySQL Update在编辑页

时间:2016-02-03 19:39:26

标签: php mysql pdo

A'测验'目前包含测验ID,名称,描述和主题(来自主题表)。

我想设置一个简单的编辑测验'页。

问题是 - 如果调用测验' Quiz1'并且我将编辑页面上的测验名称更改为“测验2”,单击“保存”按钮后,它将恢复为“测验1”和“测验1”。而不是存储。

我已经设置了一个回声,如代码所示,检查它们实际上是否存储了,点击保存按钮后它会显示' Quiz1'但是这个值没有存储在我的数据库中。 SQL已经在PhpMyAdmin上进行了测试,似乎也可以运行。

PHP代码:

<? if (!empty($_POST)) {

    $id = $_POST['qzid'];
    $qzname = $_POST['qzname'];
    $qzdesc = $_POST['qzdesc'];
    $ctname = $_POST['ctname'];

    $checkQuiz = $db->prepare("SELECT qz_name FROM quizzes WHERE qz_name = :qz_name");
    $checkQuiz->execute(array(':qz_name' => $qzname));


    $qzChanged = "Quiz details updated successfully";
    $sql = "UPDATE quizzes SET  `qz_name` = :qzname, `qz_desc` = :qzdesc WHERE `quizzes`.`id` = :qzid";
    $q = $db->prepare($sql);
    $q->execute(array(':qzname' => $qzname, ':qzdesc' => $qzdesc, ':qzid' => $id));

    echo $qzname, $qzdesc; //THIS RETURNS THE CHANGED VALUES

    }?>

HTML代码:

<form action="edit_quiz.php?id=<?php echo $row['id'] ?>" method="POST">
<input type="hidden" name="qzid" id="qzid" value=""/>
<!-- selection box -->
<p>Topic Name:
    <select class="form-control" name="ctname" id="ctname">
        <?php
        while ($tresult = $stmt->fetch()) {
            echo "<option>" . $tresult["ct_name"] . "</option>";

        }
        ?>
    </select>
</p>
<p>Quiz Name: <input type="text" name="qzname" value="<?php echo $row['qz_name']; ?>"/></p>
<p>Quiz Description: <textarea name="qzdesc" value=""/><?php echo $row['qz_desc']; ?> </textarea></p>

<input type="submit" class="btn btn-success" value="Save"/> <a class="btn" href="quizzes.php">Back</a>

请注意此代码已简化。 任何帮助,我将非常感谢!

1 个答案:

答案 0 :(得分:1)

您没有发布它看起来的ID。

您的数据库是否命名为localhost,否则删除该部分。