Вот мой код:Невозможно вставить новую строку в базу данных
$q5 = "SELECT * FROM subjects WHERE name='$sn'";
$r5 = @mysqli_query($dbc, $q5);
if($r5) {
$q3 = "UPDATE subjects SET grade='$grade' WHERE name='$sn'";
$r3 = @mysqli_query($dbc, $q3);
} else {
echo "false";
//$q3 = "INSERT INTO subjects (name, grade) VALUES ('$sn', '$grade')";
//$r3 = @mysqli_query($dbc, $q3);
}
create_subject_table($sn, $assignment, $assignment_max, $dbc);
}
В начале я проверяю, если эта строка уже существует. Если это так, я использую запрос для его обновления, если он не должен вставлять новый. Моя проблема в том, что $ r5 всегда истинно. Поэтому он обновляется нормально, но ничего не вставляет. Я попытался выполнить эхо-ложь, чтобы убедиться, что мой запрос прав, и я не вижу его. Может кто-то мне помочь, пожалуйста. Я потратил несколько часов на эту проблему и не могу понять это ...
Я не знаю PHP достаточно хорошо, чтобы знать точно, но я ожидаю, что вам нужно сделать что-то вроде получения значения $ r5 и использовать его в качестве вашего условия. Также обратите внимание, что если $ sn - это то, что пользователь контролирует, у вас есть классический эксплойт SQL на ваших руках. (Вставьте обязательный мультфильм xkcd на таблицы bobby) – Foon
Спасибо, я слышал о SQL-инъекциях, но я не очень хорошо знаком с ними. Я определенно проверю это, чтобы улучшить мою безопасность. – Max