MySQL似乎覆盖了记录

时间:2017-03-14 20:16:15

标签: php mysql database database-design

我在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   |
+-----------+----------+-------+------+-----+-------+

编辑:用于创建表格的函数:

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.
  }

0 个答案:

没有答案