2014-02-19 111 views
0

我想从我的数据库中删除。不从数据库中删除PHP

直接链接:

echo "<td>" . "<a href='delete.php?del=$row[id]'>Delete</a>" . "</td>"; 

delete.php

include("connect.php"); 

if(isset($_GET['del'])) 
{ 
    $id =$_POST['id']; 
    $sql = "DELETE termekek WHERE id = $id" ; 
    echo "<a href='admin.php'>Back</a>"; 
} 

但是当我点击删除按钮没有任何反应。

有人可以帮我吗?

+4

你不会对你的SQL查询做任何事情。 '$ sql'只是一个字符串,它不会以任何方式操作。 – ConcurrentHashMap

+0

正如@nisbshtr所说,你需要_execute_你的查询。但在此之前,请阅读[documentation](https://dev.mysql.com/doc/refman/4.1/en/delete.html)并修复您的SQL语法 – Clive

回答

0

在您的直接链接,你缺少的单引号反转:

echo "<td>" . "<a href='delete.php?del=$row[id]'>Delete</a>" . "</td>"; 
              ^-here 

应该是这样:

echo "<td>" . "<a href='delete.php?del=$row['id']'>Delete</a>" . "</td>"; 

而且,在你delete.php,你所得到的值通过POST,而你传递id作为GET,所以使它:

// $con or similar is the variable in your connect.php 
include("connect.php"); 

if(isset($_GET['del'])) 
{ 
    $id = mysqli_real_escape_string($con, $_GET['del']);  
    $sql = "DELETE FROM `termekek` WHERE id = $id" ; 
    echo "<a href='admin.php'>Back</a>"; 
} 

现在,您还需要运行查询。

那么这将工作:

// $con or similar is the variable in your connect.php 
include("connect.php"); 

if(isset($_GET['del'])) 
{ 
    $id = mysqli_real_escape_string($con, $_GET['id']); 
    $sql = "DELETE FROM `termekek` WHERE id = $id" ; 
    mysqli_query($con, $sql); 
    echo "<a href='admin.php'>Back</a>"; 
} 

此外,小记(听起来很明显):不要GET方法通过ID或敏感数据。任何人都可以通过仅仅通过将变量del从url更改为其他id来传递id,那样的事情就会很糟糕。

+0

我注意到您不断添加此答案,这很好,但是这里仍然存在两个主要问题 - 你的SQL语法不正确,甚至没有试图阻止SQL注入。 – Clive

+0

@Clive对不起,我没有注意到。我已经编辑了一些SQL注入预防和注释的答案。 –

-1

如何执行查询?

用途:

$sql ="DELETE termekek FROM YOURTABLE WHERE id = $id"  
$pdoConnection->prepare($sql); 
    $pdoConnection->execute(); 

,并避免使用$ _GET重要数据...

-3

试试这个。

<?php 
include("connect.php"); 


    if(isset($_GET['del'])) 
    { 
$id = (int)$_GET['del']; 
     $sql = "DELETE termekek WHERE id = $id" ; 
     echo "<a href='admin.php'>Back</a>"; 

    } 

?> 
-2

直接链接:

$id = $row[id]; 
echo "<td>" . "<a href='delete.php?del=$id'>Delete</a>" . "</td>"; 

,改变:删除。PHP

include("connect.php"); 

if(isset($_GET['del'])) 
{ 
    $id =$_GET['del']; 
    $sql = "DELETE from termekek WHERE id = $id" ; 
    echo "<a href='admin.php'>Back</a>"; 
}