首页 / PHP / 在PHP上执行mysql级联删除
在PHP上执行mysql级联删除
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在PHP上执行mysql级联删除,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1530字,纯文字阅读大概需要3分钟。
内容图文
![在PHP上执行mysql级联删除](/upload/InfoBanner/zyjiaocheng/907/a1c145e39a9946e78f0a732c04c9abc0.jpg)
我正在帮助我的朋友做一些数据库管理工作.基本上他有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相当新手,所以任何人都可以帮我指出我的错误在哪里?非常感谢你 :)
更新:
我从答案中尝试了一些解决方案.他们都没有工作.即使我简化了事情.这让我想知道,在将php连接到数据库方面有什么错误吗?
解决方法:
对此最好的方法是修改数据库设置以包括删除级联到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中执行任何操作.
内容总结
以上是互联网集市为您收集整理的在PHP上执行mysql级联删除全部内容,希望文章能够帮你解决在PHP上执行mysql级联删除所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。