可重用删除PHP语句?

时间:2017-06-01 14:52:10

标签: php

我想知道如何让我的代码更简洁,更易于使用。我有单独的delete.php文件,用于从页面中删除特定数据。例如,我有流派,平台和客户。

流派删除     

//get value of ?id= from the url
$DeleteID = $_GET['id'];

echo $DeleteID;

require("connect.php");

//Linking
$link = connectToDB();

//SQL Query
$sql =    "DELETE
                FROM Genre
                WHERE GenreID = ".$DeleteID;

//Execute
$result = $link->query($sql);

//Check
if ($link->affected_rows == 1) {
        header( "Location: genre.php" );
}
else {
    echo "Didn't Work";
}

平台删除

<?php
session_start();

//get value of ?id= from the url
$DeleteID = $_GET['id'];

echo $DeleteID;

require("connect.php");

//Linking
$link = connectToDB();

//SQL Query
$sql =    "DELETE
                FROM Platform
                WHERE PlatformID = ".$DeleteID;

//Execute
$result = $link->query($sql);

//Check
if ($link->affected_rows == 1) {
        header( "Location: platform.php" );
}
else {
    echo "Didn't Work";
}

我想知道是否有可能将这些文件变成我可以更改或声明的1个删除文件。用户通过表格中的按钮重定向到这些页面,并使用记录的PK ID重定向到删除页面。

2 个答案:

答案 0 :(得分:1)

您可以将另一个变量传递到URL中,以指示您要删除的内容(流派,平台,客户等)。

当然,创建一堆if / else语句变得非常容易,但它会将所有功能限制在一个文件中。

答案 1 :(得分:0)

你可以编写一个小辅助函数:

function deleteMe($link, $table, $id){
  //SQL Query

  $id = intval($id);
  $sql =    "DELETE
                FROM `$table`
                WHERE `{$table}ID` = ".$id;

  //Execute
  $result = $link->query($sql);

  return $link->affected_rows;
}

然后,您可以将其包含在单个删除页面中,并根据需要使用它,将表和ID传递给GET参数。