删除基于 php 中的 varchar 主键的行

Deleting a row which is based on a varchar primary key in php

我正在尝试删除 php 中的 table 中的特定行,并且我正在尝试使用恰好属于 varchar 类型的主键,主键是 course_Code

course_Code||course_Title||credit_Load||lecturer_id
  csc 450  ||    S.E     ||    3      ||     0

lecturer_id 对于所有添加的记录将始终为 0,因为我想将其用作外键,只有这样值才会从 0 更改为其他值;问题是当我在 table 中只有一个值并删除它时,查询运行但是添加了一个新行,其中只有 credit_Loadlecturer_id 的值为 0 而另一个列为空:

course_Code||course_Title||credit_Load||lecturer_id
           ||            ||    0      ||     0

这是我为firstpage.php编写的代码,$result['course_Code']中的值是从数据库中获取的课程代码:

<a href="processor3.php?coursecode=<?php echo $result['course_Code']; ?>

然后processor3.php:

if (isset($_GET['coursecode'])){         
    $course_id = $_GET['coursecode'];
    $query = mysql_query("DELETE FROM courses WHERE course_Code = '$course_id'");
    header("Location:firstpage.php?succ=2");
}

我知道我在 php 中使用已弃用的方式连接到 mysql,但这不是主要问题,我正在尝试教某人 php 并且他似乎不太了解 pdo 绑定,所以我希望我们慢慢进步到 pdo。我想我是个糟糕的老师。

太可怕了太可怕了!!!

 $query = mysql_query("DELETE FROM courses WHERE course_Code = '$course_id'");

请不要教任何人这样查询。应转义所有变量,否则存在 SQL 注入漏洞。

关于您的问题,我怀疑有 2 个可能的问题:

  1. 在您不知情的地方调用了一个添加行的脚本
  2. 您使用错误的 MySQL 查看器来确认删除后 table 的内容。

您确定以上两种情况都没有发生吗?