在PHP上执行mysql级联删除
发布时间:2020-12-13 17:18:22 所属栏目:PHP教程 来源:网络整理
导读:我正在帮助我的朋友做一些数据库管理工作.基本上他有2个数据库,一个叫做城市,一个叫做运费.每个表都显示在一个网页中,每个记录旁边都有编辑和删除按钮.所以他可以通过网络删除数据库中的数据. 这笔交易是,我想在这个mysql数据库上进行级联删除,这样每次我删
我正在帮助我的朋友做一些数据库管理工作.基本上他有2个数据库,一个叫做城市,一个叫做运费.每个表都显示在一个网页中,每个记录旁边都有编辑和删除按钮.所以他可以通过网络删除数据库中的数据.
这笔交易是,我想在这个mysql数据库上进行级联删除,这样每次我删除city数据库中的一行时,同时删除运费率数据库中具有相同city_ID的相应行.我试着做一些mysql查询组合,但它没有用.这就是我所拥有的 require_once('../../model/city.php'); if(isset($_POST['id'])){ //edit or remove $id = $_POST['id']; $dbo = City::get_by_id($id); if($_POST['action'] == 'remove'){ //remove //$dbo->delete(); mysql_query("DELETE city.*,shipping_rate_loc.* FROM city c,shipping_rate_loc s WHERE c.ID_city = s.ID_city"); echo "Data is removed."; } 正如你所看到的,我只是将mysql_query放在他之前的版本上 $dbo->delete(); 设法删除城市的代码,但没有相关的运费. 我在PHP中使用mysql相当新手,所以任何人都可以帮我指出我的错误在哪里?非常感谢你 :) 更新: 解决方法
对此最好的方法是修改数据库设置以包括删除级联到shipping_rate_loc表的外键,例如,
create table city ( id integer,name varchar,... primary key (id) ); create table shipping_rate_loc ( id integer,city_from integer,city_to integer,... foreign key (city_from) references city(id) on delete cascade,foreign key (city_to) references city(id) on delete cascade ); 这样,当您从城市表中删除记录时 DELETE FROM city WHERE id = myid 表shipping_rate_loc中此城市位于city_from或city_to列中的所有记录将自动被数据库删除 – 无需您在PHP中执行任何操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |