PHP MVC删除函数控制器


PHP MVC Delete Function Controller

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

我遇到的问题是

  • 我无法将行id从button.php发送到控制器(强烈怀疑代码有误)
  • 控制器中的delet功能不起作用,在下面的代码中,我已经硬编码了我想删除的行ID,但当我点击删除按钮时,我得到了以下错误

    SQL语句中存在语法错误。您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解在第1行"id=27"附近使用的正确语法

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. 检查$parameters是否正确传递给deleteItem函数(使用echo $parameters或somthing)
  2. 如果是,请检查查询(DELETE * FROM 'thetable' WHERE id = $id

通常在MVC站点中,参数通过(site_url/controller/method/parameter)url。但是,当您使用表单时,它需要成为捕获表单变量的机制。