mysql — удаление строки, основанной на первичном ключе varchar, в переполнении стека

Я пытаюсь удалить конкретную строку в таблице в php, и я пытаюсь использовать первичный ключ, который, как оказалось, имеет тип varcharпервичный ключ course_Code

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

lecturer_id всегда будет 0 для всех добавленных записей, потому что я хочу использовать его как внешний ключ, только тогда значение будет изменено с 0 на что-то другое; проблема в том, что когда у меня есть только одно значение в таблице и я его удаляю, запрос выполняется, но добавляется новая строка только с credit_Load а также lecturer_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");
}

Я знаю, что использую устаревший способ подключения к mysql в php, но это не главная проблема, я пытаюсь научить кого-то php, и он, похоже, не очень хорошо понимает привязки pdo, поэтому я хочу, чтобы мы прогрессировали медленно в пдо. Я думаю, что я плохой учитель.

2

Решение

Ужасно, ужасно УЖАСНО !!!

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

Пожалуйста, никогда не учите никого спрашивать таким образом. ВСЕ переменные должны быть экранированы, так как в противном случае существует уязвимость SQL INJECTION.

Что касается вашей проблемы, я подозреваю 2 возможных проблем:

  1. где-то без вашего ведома скрипт для добавления строки называется
  2. вы используете неправильный просмотрщик MySQL для подтверждения содержимого таблицы после удаления.

Вы уверены, что ничего из вышеперечисленного не происходит?

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]