php数据库删除表的时候怎么点都可以删除成功是查询执行成功并影响到未返回任何行导致。根据查询相关信息显示对于其它类型的SQL语句,mysql,query()在执行成功时返回TRUE,出错时返回FALSE。非FALSE的返回值意味着查询是合法的并能够被服务器执行。导致php数据库删除表的时候任意点击都可以删除成功。
为金溪等地区用户提供了全套网页设计制作服务,及金溪网站建设行业解决方案。主营业务为成都做网站、成都网站建设、成都外贸网站建设、金溪网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
// 在User模型中启动事务
$User-startTrans();
// 进行相关的业务逻辑操作
$Info = M("Info"); // 实例化Info对象
$Info-save($User); // 保存用户信息
if (操作成功){
// 提交事务
$User-commit();
}else{
// 事务回滚
$User-rollback();
}
注意:系统提供的事务操作方法必须有数据库本身的支持,如果你的数据库或者数据表类型不支持事务,那么系统的事务操作是无效的。
数据库 或者数据表 要是Innodb数据引擎
首先你的问题与PHP无关,PHP总是把SQL语句不做任何解释就教给数据库,由数据库管理系统进行处理。
其次你这样的要求有什么意义呢,先删除一个表再删除一个表有什么问题呢?
最后是否可以执行你这样的功能,我现在使用过的数据库都没有相应的语法同事删除两个表,要实现你这样的功能可以两个思路。一是建立一个存储过程(PROCEDURE),调用这个存储过程实现两个表的数据删除,但是本质上是先后删除的。另外一个办法就是建立一个可以更新的试图(VIEW),这个试图是从两个表里面获取数据(比如CREATE v1 AS SELECT uid FROM A UNION SELECT uid FROM B),然后从这个试图里面删除数据(DELETE FROM v1 WHERE uid=$q_id)。
直接执行多条sql语句就好了。
如果要考虑得多一些,开启事务。
这个需要分两个步骤完成。
1、删除数据库数据;
2、删除文件。
一般存入数据库的数据和文件都有关联性,如文件名存在数据库某字段中,这时候可以查询出要删除的某条数据,找到这条数据中的文件名,然后先将这条数据删除,再把文件名对应的文件删除。
删除数据库数据使用delete语法,删除服务器文件使用unlink函数。