У меня есть новая таблица в MySQL, которая может быть описана как таковая:
+-----------+----------+-------+------+-----+-------+ | Team | Match | Auto | Gear | Kpa | Climb | +-----------+----------+-------+------+-----+-------+ | 1721 | 1 | 3 | 5 | 5 | 1 | +-----------+----------+-------+------+-----+-------+ | 5813 | 2 | 2 | 2 | 15 | 0 | +-----------+----------+-------+------+-----+-------+
Когда я пытаюсь сделать новую запись в таблицу со следующим синтаксисом
INSERT INTO 2017marea (Team, `Match`, Auto, Gear, Kpa, Climb) VALUES ('1721', '19', '3', '5`, `15`, `1`);
а затем снова распечатаю таблицу. Я могу видеть только самую новую запись 1721 года, а не ее старшую. Я попробовал добавить четвертый столбец с первичным ключом автоматического увеличения, но он по-прежнему сохранял такое же поведение.
Как остановить его от перезаписи старых данных при записи новых данных в базу данных?
Правка для ясности. Вот как выглядит новая таблица после команды вставки.
+-----------+----------+-------+------+-----+-------+ | Team | Match | Auto | Gear | Kpa | Climb | +-----------+----------+-------+------+-----+-------+ | 5813 | 2 | 2 | 2 | 15 | 0 | +-----------+----------+-------+------+-----+-------+ | 1721 | 19 | 3 | 5 | 15 | 1 | +-----------+----------+-------+------+-----+-------+
Edit: функция, используемая для создания таблицы:
CREATE TABLE `2017marea` (`Team` INT(25) NOT NULL, `Match` INT(25) NOT NULL, `Auto` TINYINT(2) NOT NULL, `Gear` TINYINT(2) NOT NULL, `Kpa` TINYINT(2) NOT NULL, `Climb` TINYINT(2) NOT NULL);
Дополнительные изменения: это mysql_
через mysqli_
(да, я знаю, я знаю, он никогда не покидает локальную сеть).
ОК. Это стало проблемой PHP.
Я больше не могу воспроизвести эту проблему в консоли MySQL. Я выделил проблему до моего PHP-кода. Я все еще не уверен, в чем проблема – insert ignore
тоже не работает.
Больше прав, о мальчик. Это копия всей моей логики PHP. База данных, представленная здесь для примера, различна (не такая большая таблица), как фактическая, поэтому код PHP немного отличается. Во всяком случае, вот он:
if (isset($_POST['team']) && isset($_POST['match']) && isset($_POST['auto']) && isset($_POST['gear']) && isset($_POST['kpa']) && isset($_POST['climb'])) { $team = mysql_real_escape_string($_POST['team']); $match = mysql_real_escape_string($_POST['match']); $auto = mysql_real_escape_string($_POST['auto']); $gear = mysql_real_escape_string($_POST['gear']); $kpa = mysql_real_escape_string($_POST['kpa']); $climb = mysql_real_escape_string($_POST['climb']); $postQuery = mysql_query("INSERT INTO 2017marea (Team, `Match`, Auto, Gear, Kpa, Climb) VALUES ($team, $match, $auto, $gear, $kpa, $climb)") or die("MySQL Error: " . mysql_error()); if ($postQuery) { echo "<script> window.location.replace('../scouting/index.php?s=1')</script>"; } else { echo "<script> window.location.replace('../scouting/index.php?f=1')</script>"; } } else { // This is an HTML form. Truncated for easy display. }