Вот пример кода:
$sql = "INSERT INTO Users (Firstname,Surname) VALUES ('$firstname', '$surname')";
$stmt = sqlsrv_query( $conn, $sql,array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
if(!$stmt)
{
die('Yu feiru!');
}
В базе данных 3 столбца; ID, имя и фамилия. ID - это первичный ключ с автоинкрементом. У меня также есть имя в качестве уникального ключа. Итак, теперь, когда я все это рассмотрю, все объясняют мою проблему.
Когда моя форма заполнена, она переходит на страницу, на которой выполняется вышеуказанный код. Итак, изначально это работает, как и должно быть, поэтому теперь у меня будет первая запись в таблице с идентификатором 1. Теперь, если мне нужно обновить эту страницу, она возвращает ошибку, очевидно, потому что я вставляю ту же самую имя, и так как это уникальный ключ, он не будет работать, пока все хорошо.
Вот проблема: если я сейчас вернусь к форме и отправлю ее с новыми подробностями, новая запись отобразит идентификатор 3. Так что проблема здесь в том, что каждый раз, когда я запускаю запрос, будет ли он успешным или нет, он увеличивает ID. Так что раньше, если бы я обновил страницу 5 раз, тогда новая запись имела бы идентификатор 7.
РЕДАКТИРОВАТЬ: Обратите внимание, как я уже сказал, это просто пример кода. Я до сих пор не принял никаких мер предосторожности против инъекций SQL. Независимо от этого, большое спасибо за ваши рекомендации.