重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
delete from 表名;
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了正安免费建站欢迎大家使用!
truncate table 表名;
不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。
delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。
PHP
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。
这个需要分两个步骤完成。
1、删除数据库数据;
2、删除文件。
一般存入数据库的数据和文件都有关联性,如文件名存在数据库某字段中,这时候可以查询出要删除的某条数据,找到这条数据中的文件名,然后先将这条数据删除,再把文件名对应的文件删除。
删除数据库数据使用delete语法,删除服务器文件使用unlink函数。
mysql 清空表中数据:
truncate table table_name;
在category_model中写下面的函数:
function clear(){
$sql = "truncate table cd_category";
return $this-db-query($sql);
}
在控制器中调用:
$data['category'] = $this-cateegory-clear();
这样即可清空表cd_category中的所有数据;
PHPCMS默认自带删除文章,但是一次最多只能删除20篇文章。如果要删除的文章数量多的话会很雷人,虽然我们可以通过删除栏目来实现删除文章,但是还是怕会删除的不彻底而占用数据库空间。
PHPCMS批量删除文章方法,PHPCMS默认存储文章的数据表是v9_news和v9_news_data,一个是主表,用于存储文章的标题、描述、关键词等信息,另外个附表就主要是存储文章内容的。
代码如下:
?php
$mydbhost = "localhost"; //配置主机
$mydbuser = "test"; //数据库用户
$mydbpw = "test2016#"; //数据库密码
$mydbname = "gongzheng"; //数据库名字
$mydbcharset = "utf8"; //设置编码
$link = mysql_connect($mydbhost,$mydbuser,$mydbpw) or die (mysql_error());
mysql_select_db($mydbname,$link) or die("没有该数据库:".$mydbname);
mysql_query("SET NAMES '$mydbcharset'");
$row= mysql_query("SELECT `a`.`id` as `k`,`b`.`id` as `p` FROM `v9_news` as `a` left join `v9_news_data` as `b` on `a`.`id` = `b`.`id` WHERE `a`.`catid` = '111' ORDER BY `a`.`id` DESC");
while ($rs=mysql_fetch_array($row)){
$aid = $rs[k];
$sql = "DELETE FROM `v9_news` WHERE `v9_news`.`id` = '$aid'";
$sql2 = "DELETE FROM `v9_news_data` WHERE `v9_news_data`.`id` = '$aid'";
mysql_query($sql);
mysql_query($sql2);
}
mysql_close();//关闭数据库连接
?
参考方法:
delete from 表名;
truncate table 表名;
不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。
delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。
MySQL为我们提供了delete和truncate语句来删除数据。
delete 语句的定义:
删除数据的时候用的大多都是 delete 语句。现在让我们来看一下 delete语句的定义。
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]
delete from friends where user_name = 'simaopig';
delete 注意事项:
从语法结构中,我们就可以看出,和 update 语法一样,我们是可以省略 where 子句的。不过这是一个很危险的行为。因为如果不指定 where 子句,delete 将删除表中所有的记录,而且是立即删除.
truncate 语句的简单说明:
这个语句之前我也没有接触过,也没有使用过。因为一般情况下,删除数据大家都在使用delete语句。其实这个truncate 命令很简单,它的意思是:删除表的所有记录。相当于 delete 语句不写 where 子句一样。其语法结构为:
TRUNCATE [TABLE] tbl_name
这里简单的给出个示例,我想删除 friends 表中所有的记录,可以使用如下语句:
truncate table friends;
truncate 和 delete的效率问题:
如果想要删除表的所有数据,truncate语句要比 delete 语句快。因为 truncate 删除了表,然后根据表结构重新建立它,而 delete 删除的是记录,并没有尝试去修改表。这也是为什么当向一个使用 delete 清空的表插入数据时,MySQL 会记住前面产生的AUTOINCREMENT序列,并且继续利用它对AUTOINCREMENT字段编号。而truncate删除表后,表是从1开始为autoincrement字段编号。
不过truncate命令快规快,却不像delete命令那样对事务处理是安全的。因此,如果我们想要执行truncate删除的表正在进行事务处理,这个命令就会产生退出并产生错误信息。