2013-11-03 33 views
0

我试图通过单击基于PHP的网页中的链接删除数据库中的一行。我所有的数据库连接和表选项都能正常工作,但在将主键发送到我正在执行删除操作的页面时,似乎发现我无法发送正确的信息,因为它没有删除任何内容。难道我做错了什么?使用PHP和MySQL删除数据库中的一行

我发送的信息是这样的:

echo "<td><a href= 'delete.php?pid='{$_POST['id']}''> Delete </a></td>"; 

和删除这样的:

$del="DELETE FROM sca WHERE pid = '{$_POST['id']}'"; 

感谢

+6

哟DIS代码是不是安全 – Kermit

+1

请切换到[预处理语句(http://bobby-tables.com/php。 html)来防止SQL注入。 –

回答

0

如果删除查询是delete.php要访问WHERE pid ='{$ _GET ['pid']}',因为点击链接时您将丢失发布的数据。

+0

这仍然是不安全的。 –

+0

我从来没有说过它是安全的,我只是说明了查询有问题。 – Niketa

0

你确定“$ _POST ['id']”返回什么吗?

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

你必须使用$ _GET变量有:

$id = (int) $_GET['id']; 
$del = "DELETE FROM `sca` WHERE `pid` = $id"; 
+0

你怎么知道'$ id'可以转换为整数? –