【发布时间】:2014-06-11 06:40:47
【问题描述】:
我有一个供人们上传内容的新闻源,并且在那里我有一个 删除 按钮。我阅读了一些可以用来从数据库中删除一行的技巧。
我通过使用输入类型隐藏字段等来使用这个。
HTML
<form action="logic/delete_post.php" method="GET">
<input type="hidden" name="id" value="?id='.$pica['img_id'].'" />
<input type="submit" name="deleteSubmit" value="Delete" class="delete_post" />
</form>
DELETE_POST.PHP
<?php
if(isset($_GET['deleteSubmit'])) {
$img_id = substr($_GET['id'],4,6);
if(isset($_GET['id'])) {
$result = $mysqli->query("SELECT picas.img_id FROM picas WHERE username='$ses_user'");
$mysqli->query("DELETE FROM picas WHERE img_id='$img_id'");
if (mysqli_affected_rows() == 1) {
echo 'Succes!';
} else {
echo 'Damn!';
}
}
}
?>
感谢每条有帮助的评论!
【问题讨论】:
-
我在 value 属性中看不到 php 括号,或者我猜你在使用连接时正在回显整个 html 垃圾......
-
在使用
$img_id删除图像之前,您永远不会设置它。 -
另外,您的代码效率不高,您的用户可以注入任何数据,因为您根本没有验证 ID
-
您收到错误消息? $img_id 设置了吗?
-
另外,您正在使用 OOP 样式来执行查询,并且正在使用过程函数来检查受影响的行。您应该使用 `$mysqli->affected_rows` 进行检查
标签: php sql button while-loop sql-delete