使用php从MySQL中的两个联接表中删除信息


Delete information from two join tables in MySQL using php

HTML

echo "<a href='"delete.php?id=".$row{'idHeroes'}."'">Delete</a>";

PHP

$joinTables = "DELETE * FROM heroes,stats WHERE idHeroes = $_GET[id]";
mysql_query($joinTables);
header('Location: index.php');

当我点击按钮时,它会刷新页面,但什么也没发生。

//我找到了一个解决方案

$deleteHeroes = "DELETE FROM heroes WHERE idHeroes = '".$_GET['id']."'";
    $deleteStats = "DELETE FROM stats WHERE idStats = '".$_GET['id']."'";
    mysql_query($deleteHeroes);
    mysql_query($deleteStats);

这样重写查询:

  $joinTables = "DELETE * FROM heroes
                 INNER JOIN  stats WHERE 
                 WHERE heroes.idHeroes= stats.idHeroes 
                 and heroes.idHeroes = '".$_GET['id']."' ";

OBS。在查询中使用变量之前,必须对其进行转义,否则会有人删除所有列:(。

从GET中删除是个坏主意。