首页 > 解决方案 > 编辑代码后MySQL数据库中的重复项

问题描述

我的 PHP 代码有问题。
我正在尝试为我和另一个人正在开发的小型游戏项目制作关卡创建功能。
我的代码有效..但会产生很多重复。
这是代码:(不要嘲笑我这是多么脆弱,这最终会得到修复,这只是测试代码,在任何情况下都不会出现在公共服务器上,好吗?)

$mysqli  = new mysqli("localhost", "Username", "Password", "sys");
$SqlQuery = "INSERT INTO levels (levelname, levelauthor, leveldata)
VALUES(\"" . $_GET["levelName"] . "\", \"" . $_GET["levelAuthor"] . "\", \"" . $_GET["levelData"] . "\");";
$query2 = "SELECT * FROM levels WHERE leveldata = \"" . $_GET["levelData"] . "\";";

//echo "SELECT * FROM levels WHERE leveldata = \"" + $_GET["levelData"] + "\";";

$uresult = $mysqli->query($SqlQuery, MYSQLI_USE_RESULT);
$res2 = $mysqli->query($query2, MYSQLI_USE_RESULT);
if ($uresult) {     
    while ($row = $res2->fetch_assoc()) {
        //This should always work. Lol
        echo "(SUC)|ID:" . $row["levelid"];
    }   
}

运行此代码后,我希望只检查我的数据库并能够看到我编写的测试,没有重复。我启动了 PHP 开发服务器并转到:

http://localhost/Create.php?levelName=PHPTest&levelAuthor=Test3&levelData=[snip]

我希望看到类似于“(SUC)|ID:4”的内容(当时数据库中有 3 个条目),但我看到了:

(SUC)|ID:4(SUC)|ID:5(SUC)|ID:6(SUC)|ID:7(SUC)|ID:8(SUC)|ID:9(SUC)|ID:10(SUC)|ID:11

这是出乎意料的。我认为这只是我的代码中的一个错误(请记住,最后一个有一个损坏的 ID 抓取系统,但是可以工作),并且它会工作,但是后来,我去检查数据库,看到了很多具有相同数据的重复项。

有谁知道如何修复此代码?

标签: php

解决方案


明显的问题,但在数据库上启用了自动提交?你有一些公开的交易吗?

使用来检查 MySQL 上的打开事务。


推荐阅读