我创建了一个显示数据库记录的MVC站点,每个记录都打印在自己的行上,旁边有一个删除按钮。我在删除按钮时遇到了一些问题。当我单击删除按钮时,我试图将其发送到我的控制器来处理。
我遇到的问题是
控制器中的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 );
}
答案 0 :(得分:0)
尝试以下步骤:
$parameters
是否已正确传递给deleteItem
函数(使用echo $parameters
或somthing)DELETE * FROM 'thetable' WHERE id = $id
)通常在MVC网站中参数传递(site_url/controller/method/parameter
)url。但是当您使用表单时,它需要是一种捕获表单变量的机制。