php pdo 批量删除,php-使用准备好的语句删除带有PDO和复选框的多行?

我有这段代码,

$q = $dbc -> prepare ("SELECT * FROM tasks ORDER BY date_time LIMIT 0, 15");

$q -> execute();

echo '

';

while ($todo = $q -> fetch(PDO::FETCH_ASSOC)) {

echo '

'

. $todo['date_time'] . '

' . $todo['type']

. '

' . $todo['message']

. '

';

}

echo '

';

现在,除了一件事之外,一切都按预期工作,我在互联网上还没有真正找到任何答案.我的while循环将总是有多于一行,并且几乎总是希望从中删除多于一行.

按照此脚本的形式,表单可以工作,但只会删除最后单击的复选框.我了解为什么这样做,但是我不了解如何使用PDO和准备好的语句来解决此问题.

解决方法:

您正在为每个复选框分配相同的名称=“ deletetask”.因此,提交表单时,您只会收到最后选择的deletetask值.所以,你的错误在这里

应该

因此,您需要将deletetask重命名为deletetask [],以便您的复选框作为数组发送,而不是像

$todelete = $_POST['deletetask'];

//or $_GET, if you are submitting form through get. But I would recommend you using POST

$stmt = $pdo->prepare("DELETE FROM table WHERE id = ?");

foreach ($todelete as $id)

$stmt->execute($id);

标签:mysql,php,pdo

来源: https://codeday.me/bug/20191102/1990089.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值