如何在PHP中使用DELETE FROM删除数组中的id?

时间:2016-12-21 23:30:33

标签: php mysql mysqli

美好的一天,我不擅长在这里提问,所以我会尝试。当我尝试从数据库中删除id时,我收到此错误。

  

错误您的SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第1行"

这是显示数据库信息的页面上的帖子表单。

<form method='POST' action='clientinfodelete.php'>
    <input type='hidden' value=".$row['client_id']." name='id'/>
    <input type='submit' value='Remove' name='id' />
</form>

这是clientinfodelete.php页面。

<?php
//connection
include 'conntest.php';

if(isset($_POST['id'])){

    $sql = "delete FROM clientInfo WHERE client_id =".$_GET['id'];   
    if(mysqli_query($conn, $sql)){

        header('Location:emailnotify.php');

    }else{

        echo "Error ".mysqli_error($conn); 

    }
}
?>

为什么我收到此错误?

1 个答案:

答案 0 :(得分:3)

  1. 您检查isset($_POST['id'])是否然后使用$_GET['id']
  2. 您的代码容易受到攻击。您应该阅读bobby-tables story
  3. 下次 - 除了你从mysql得到的错误,你还应该打印查询。通过这种方式,您可以看到问题究竟是什么(在您的情况下,您可能会得到delete FROM clientInfo WHERE client_id =(这是错误的语法)。
  4. 输入的名称和提交按钮的名称相同。您应该只使用此名称一次(否则最后一个将覆盖另一个)。
  5. 将您的HTML更改为:

    <form method='POST' action='clientinfodelete.php'>
        <input type='hidden' value=".$row['client_id']." name='id'/>
        <input type='submit' value='Remove' name='submit' /> <!-- changed here from id to submit -->
    </form>