php 紧急求助,想实现点击删除按钮删除数据库内对应的id信息

这就是坑。
别信。
别这么干。

直接用PDO或mysqli。
参数绑定。
安全过滤。

PHP数据库删除数据指南_PHPDELETE语句操作步骤详解

PHP删除数据用DELETE语句,PDO或MySQLi执行。

连接数据库,配置错误模式。

写DELETE语句,带WHERE子句。

用预处理语句,绑定参数执行。

检查受影响行数,判断是否成功。

用try-catch处理异常。

根据需要选物理删除或逻辑删除。

代码示例:
php $dsn='mysql:host=localhost;dbname=test_db;charset=utf8 '; $username='root'; $password='';
try{ $pdo=newPDO($dsn,$username,$password,[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION]); $idToDelete=5 ; $stmt=$pdo->prepare("DELETE FROM users WHERE id=:id"); $stmt->bindParam(':id',$idToDelete,PDO::PARAM_INT); $stmt->execute(); $rowsAffected=$stmt->rowCount(); if($rowsAffected>0){ echo "删除成功,影响行数:$rowsAffected"; }else{ echo "未找到匹配记录"; } }catch(PDOException$e){ error_log("删除错误:".$e->getMessage()); echo "操作失败,请联系管理员"; } $pdo=null;

thinkphp软删除(softDelete)功能如何实现

哎哟,这软删除啊,我当年用ThinkPHP5 的时候,就琢磨过这事儿。
后来换了ThinkPHP6 ,还真用上了,给你说说我的踩坑经历。

记得是前年,在一个电商系统里搞用户管理。
那时候客户说,用户删了也不能真删啊,万一以后要找回来怎么办?我就琢磨着用软删除。

第一步,模型得改。
我就新建了个User模型,继承了ThinkPHP的Model,然后引入了SoftDelete这个trait。
代码就是那样,use SoftDelete; 这句不能少。
然后$deleteTime字段,我写成'delete_time',跟数据库里的一致。
那时候我差点写成'deleted_at',还好发现早,不然后面一整个头疼。

第二步,数据库操作。
我就加了个delete_time字段,类型是DATETIME,默认值是NULL。
这个很重要,没删的时候是NULL,删了之后系统自动给你填上当前时间。
我那会儿还试了TIMESTAMP,结果发现有些服务器时间不对,填上来的时间跟实际时间差一大截,后面排查了好久。
所以DATETIME保险点。

第三步,删数据。
调用delete()方法就行。
我那时候写了个接口,用户点击删除,我就拿ID去查,然后调用$user->delete();。
你别说,真删了,但数据库里那delete_time字段立马就变成了当前时间。
你去看数据库,记录还在,就是被“隐藏”了。

第四步,查数据。
这个最烦人,我一开始也踩坑了。
默认查询就是过滤掉软删除的,你直接User::select(),出来的用户列表里就没有被删的。
后来客户说,我要看看所有用户,包括删了的。
我就试了User::withTrashed()->select();,哈哈,这一下全出来了,连删了的都给你显示出来了。
还有onlyTrashed(),这个我就用来做数据清理的脚本,专门找那些被删了很久又不想彻底删掉的数据。

第五步,恢复数据。
这个很简单,restore()方法。
我那时候有个管理后台,管理员看到被删的用户,觉得好像删错了,就点个“恢复”按钮,调用$user->restore();,那记录立马就回来了,delete_time又变成NULL了。

我这踩坑总结就两点:一是$deleteTime字段名一定要跟数据库一致,我那会儿差点就写错了;二是withTrashed()和onlyTrashed()这两个方法,得好好记着,不然查数据的时候容易乱。
不过啊,用了软删除之后,我们那系统用户数据恢复的次数少多了,挺好。