PHP MVC删除函数控制器

时间:2015-04-01 15:43:34

标签: php

我创建了一个显示数据库记录的MVC站点,每个记录都打印在自己的行上,旁边有一个删除按钮。我在删除按钮时遇到了一些问题。当我单击删除按钮时,我试图将其发送到我的控制器来处理。

我遇到的问题是

  • 我无法将button.php中的行id发送给控制器(强烈怀疑代码错误)
  • 控制器中的delet功能不起作用,在下面的代码中,我在要删除的行ID中进行了硬编码,但是当我单击删除按钮时出现以下错误

    SQL语句中的语法错误。您的SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以便在#id; id = 27'附近使用正确的语法。第1行

Button.php

<?php
$result=$itemsDAO->getItems();
foreach ($result as $row) {
$uid = $row['id'];
?>
<form action="index.php" method="post">
<fieldset>
<input id='action' type='hidden' name='action' value='deleteItem' />
<p>
<div class="form-group">
    <div class="controls">
        <input type="hidden" id="fID" name="uid" value="<?php echo $uid; ?>">
        <input type="submit" class="btn btn-success" value="Delete">
    </div>
</div>
</p>
</fieldset>
</form>
<?php } ?>

删除控制器中的功能

        function deleteItem($parameters) {
        $id = $parameters["fID"];

        if ($this->model->deleteItem( $id )) {
            $this->model->hasDeleteFailed = false;
            $this->model->setDeleteItemConfirmation();
            return (true);
        }
        else
            $this->model->deleteItemError ( DELETE_ITEM_ERROR_STR );
    }

删除SQL

    public function deleteItem($id) {
    $delId = $id;
    $sqlQuery = "DELETE FROM items";
    $sqlQuery .= " WHERE id=$delId;";

    $result = $this->getDbManager () -> executeQuery ( $sqlQuery );
}

1 个答案:

答案 0 :(得分:0)

尝试以下步骤:

  1. 检查$parameters是否已正确传递给deleteItem函数(使用echo $parameters或somthing)
  2. 如果是,请检查查询(DELETE * FROM 'thetable' WHERE id = $id
  3. 通常在MVC网站中参数传递(site_url/controller/method/parameter)url。但是当您使用表单时,它需要是一种捕获表单变量的机制。