Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从多个mysql表中删除数据_Php_Mysql - Fatal编程技术网

Php 从多个mysql表中删除数据

Php 从多个mysql表中删除数据,php,mysql,Php,Mysql,tableOk所以我想做的是 我在mysql中的一个数据库上有多个表 数据库1 table1 table2 table3 table4 table5 每个表都有一个列id 对于每个匹配的id,我都要删除该行。因此,删除每个表中的954001行。在不破坏我的数据库的情况下,最好的方法是什么。顺便说一句,所有ID都匹配 <?php // get value of id that sent from address bar $customer_id=$_GET['id']; $id=$

tableOk所以我想做的是

我在mysql中的一个数据库上有多个表

数据库1

table1

table2

table3

table4

table5
每个表都有一个列id

对于每个匹配的id,我都要删除该行。因此,删除每个表中的954001行。在不破坏我的数据库的情况下,最好的方法是什么。顺便说一句,所有ID都匹配

<?php
// get value of id that sent from address bar
$customer_id=$_GET['id'];
$id=$_GET['id'];
// Delete data in mysql from row that has this id
$sql="DELETE FROM teable_users WHERE customer_id = $customer_id;
DELETE FROM table_parties WHERE id = $id;
DELETE FROM table_weddings WHERE id = $id;
DELETE FROM table WHERE id = $id;
DELETE FROM table_request_client WHERE id = $id;
DELETE FROM table_requests WHERE id = $id;
DELETE FROM table_users WHERE id = $id;";

$result=mysql_query($sql);

// if successfully deleted
if($result){
echo "Deleted Successfully";
echo "<BR>";
echo "<a href='text.php'>Back to Event    Manager</a>";
}

else {
echo "ERROR";
}

// close connection
mysql_close();

?>
每个表都需要一个DELETE语句。如果担心一致性,可以使用事务

BEGIN TRANSACTION;
DELETE FROM table1 WHERE id = 1;
DELETE FROM table2 WHERE id = 1;
DELETE FROM table3 WHERE id = 1;
DELETE FROM table4 WHERE id = 1;
DELETE FROM table5 WHERE id = 1;
COMMIT;
使用未测试的PHP示例

$id = (int) $_GET['id'];
$pdo->beginTransaction();
$st = $pdo->prepare('DELETE FROM table1 WHERE id = :id');
$st->execute(array(':id', $id));
$st = $pdo->prepare('DELETE FROM table2 WHERE id = :id');
$st->execute(array(':id', $id));
$st = $pdo->prepare('DELETE FROM table3 WHERE id = :id');
$st->execute(array(':id', $id));
$st = $pdo->prepare('DELETE FROM table4 WHERE id = :id');
$st->execute(array(':id', $id));
$st = $pdo->prepare('DELETE FROM table5 WHERE id = :id');
$st->execute(array(':id', $id));
$pdo->commit();
每个表都需要一个DELETE语句。如果担心一致性,可以使用事务

BEGIN TRANSACTION;
DELETE FROM table1 WHERE id = 1;
DELETE FROM table2 WHERE id = 1;
DELETE FROM table3 WHERE id = 1;
DELETE FROM table4 WHERE id = 1;
DELETE FROM table5 WHERE id = 1;
COMMIT;
使用未测试的PHP示例

$id = (int) $_GET['id'];
$pdo->beginTransaction();
$st = $pdo->prepare('DELETE FROM table1 WHERE id = :id');
$st->execute(array(':id', $id));
$st = $pdo->prepare('DELETE FROM table2 WHERE id = :id');
$st->execute(array(':id', $id));
$st = $pdo->prepare('DELETE FROM table3 WHERE id = :id');
$st->execute(array(':id', $id));
$st = $pdo->prepare('DELETE FROM table4 WHERE id = :id');
$st->execute(array(':id', $id));
$st = $pdo->prepare('DELETE FROM table5 WHERE id = :id');
$st->execute(array(':id', $id));
$pdo->commit();

您可以编写一个触发器,在初始删除时执行删除操作

您可以编写一个触发器,在初始删除时执行删除操作

我认为基本上您必须为每个表执行单独的语句

您可能对本论坛感兴趣:

我相信是这样的——尽管我的SQL已经生锈了


从表1中删除,其中id='954001'

我认为基本上你必须为每个表做单独的陈述

您可能对本论坛感兴趣:

我相信是这样的——尽管我的SQL已经生锈了


从表1中删除,其中id='954001'

如何在php中做到这一点?例如,如果您使用PDO,您就有方法和。好的,我尝试了这个方法,但有些地方不正常,我在上面添加了代码。您需要一次执行一个DELETE语句php不支持多个SQL语句来防止SQL注入攻击。所以你需要为每个表调用一次mysql_查询。啊,我看到了任何变化,你能给我一个简短的例子吗?非常感谢你的帮助!如何在php中做到这一点?例如,如果您使用PDO,您就有方法和。好的,我尝试了这个方法,但有些地方不正常,我在上面添加了代码。您需要一次执行一个DELETE语句php不支持多个SQL语句来防止SQL注入攻击。所以你需要为每个表调用一次mysql_查询。啊,我看到了任何变化,你能给我一个简短的例子吗?非常感谢你的帮助!