MySQL parece estar substituindo registros
Eu tenho uma tabela nova no MySQL que pode ser descrita da seguinte forma:
+-----------+----------+-------+------+-----+-------+
| Team | Match | Auto | Gear | Kpa | Climb |
+-----------+----------+-------+------+-----+-------+
| 1721 | 1 | 3 | 5 | 5 | 1 |
+-----------+----------+-------+------+-----+-------+
| 5813 | 2 | 2 | 2 | 15 | 0 |
+-----------+----------+-------+------+-----+-------+
Quando tento fazer uma nova entrada na tabela com a seguinte sintaxe
INSERT INTO 2017marea (Team, `Match`, Auto, Gear, Kpa, Climb) VALUES ('1721', '19', '3', '5`, `15`, `1`);
e, depois, imprimo a tabela e vejo apenas o registro mais recente de 1721, e não o mais antigo. Tentei adicionar uma quarta coluna com uma chave primária de incremento automático, mas ainda mantinha o mesmo comportamento.
Como impedi-lo de substituir dados antigos enquanto grava novos dados no banco de dados?
Edite para maior clareza: Aqui está a aparência da nova tabela após o comando insert.
+-----------+----------+-------+------+-----+-------+
| Team | Match | Auto | Gear | Kpa | Climb |
+-----------+----------+-------+------+-----+-------+
| 5813 | 2 | 2 | 2 | 15 | 0 |
+-----------+----------+-------+------+-----+-------+
| 1721 | 19 | 3 | 5 | 15 | 1 |
+-----------+----------+-------+------+-----+-------+
Editar: função usada para criar a tabela:
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);
Mais edições: Estámysql_
através domysqli_
calço (sim. Eu sei. Estou ciente. Nunca sai de uma rede local).
ESTÁ BEM. Isso se tornou um problema de PHP.
Não consigo mais reproduzir o problema no console do MySQL. Eu isolei o problema no meu código PHP. Ainda não tenho certeza de qual é o problema -insert ignore
também não funciona.
Mais edições, oh garoto. Esta é uma cópia de toda a minha lógica PHP. O banco de dados que forneci aqui para um exemplo é diferente (não tão grande de uma tabela) quanto o real, portanto, o código PHP é um pouco diferente. De qualquer forma, aqui está:
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.
}