PHP MYSQLI无法从数据库中删除一行数据

PHP MYSQLI Unable to delete a row of data from database

本文关键字:数据 一行 删除 MYSQLI 数据库 PHP      更新时间:2023-09-26

当我点击删除按钮时,我想删除一行数据,例如userid number 4,但什么都没发生。它只是弹出"你确定要删除'4undefine'吗"有人能帮忙吗?

index.php

<?php
  $connection = mysqli_connect("localhost","root","","userdatabase");
  mysqli_select_db($connection, "userdatabase");
  $sql_query="SELECT * FROM user";
  $result_set=mysqli_query($connection,$sql_query);
  if(isset($_GET['delete_id']))
  {
    $sql_query="DELETE FROM user WHERE userid=".$_GET['delete_id'];
    mysqli_query($sql_query);
    header("Location: $_SERVER[PHP_SELF]");
  }
?>

这是确认

<script type="text/javascript">
function delete_id(userid,username,password,email,workplace,role)
{
  if(confirm("Are you sure you want to delete '" +userid+username))
  {
    window.location.href='adminhome.php?delete_id='+userid;
  }
}
</script>


<?php
 if(mysqli_num_rows($result_set)>0)
 {
    while($row=mysqli_fetch_row($result_set))
    {
        $userid = $row[0];
        $username = $row[1];
        $password = $row[2];
        $email = $row[3];
        $workplace = $row[4];
        $role = $row[5];
        ?>
        <tr>
        <td><?php echo $userid; ?></td>
        <td><?php echo $username; ?></td>
        <td><?php echo $password; ?></td>
        <td><?php echo $email; ?></td>
        <td><?php echo $workplace; ?></td>
        <td><?php echo $role; ?></td>
        <td align="center"><a href="javascript:delete_id(<?php echo $row[0]; ?>)"><img src="RemoveUser.png" alt="Delete" /></a></td>
        </tr>
        <?php
    }
  }

所以你的第一个问题是你定义了这样的函数:

function delete_id(userid,username,password,email,workplace,role)

但我们这样称呼它:

delete_id(<?php echo $row[0]; ?>)

username是未定义的,这有什么奇怪的吗?那么您在调用mysqli_query()时的语法就不正确了,正如上面的注释中所指出的那样。它采用您正在使用的程序样式中的两个参数。

接下来你需要担心的是,如果有人去http://your.site/adminhome.php?delete_id=4%20or%201=1.我建议您尽快了解如何防止SQL注入。