PHP代码执行但不插入数据?

标签 php mysql database mysqli insert-into

我遵循了一年前的 Unity Client - PHP Server - Database integration 在线教程。代码似乎执行得很好,它完美地到达了“echo“Success””行等。

但是当我查看我的数据库时,那里什么也没有。它是空白的,我不知道为什么。

注意:在线教程使用的是 mysql...而我使用的是(未分解的)mysqli...但似乎没有太大区别,但我完全是新手PHP 编码,只有很少的经验,所以我很可能错了?

<?php
/**
 * Created by PhpStorm.
 * User: Josh
 * Date: 09/04/2016
 * Time: 14:11
 */

$Username = $_REQUEST["Username"];
$Password = $_REQUEST["Password"];

$Hostname = "localhost";
$DBName = "statemilitaryrpdb";
$User = "root";
$PasswordP = "";

$link  = mysqli_connect($Hostname, $User, $PasswordP, $DBName) or die ("Can't Connect to DB");
if (!$Username || !$Password) {
    echo "Empty";
} else 
{
        $SQL = "SELECT * FROM accounts WHERE Username = '" . $Username ."'";
        $Result = @mysqli_query($link, $SQL) or die ("DB ERROR");
        $Total = mysqli_num_rows($Result);
        if($Total == 0)
        {
            $insert = "INSERT INTO 'accounts' ('Username', 'Password') VALUES ('" .$Username . "', MD5('" . $Password . "'), 0)";
        $SQL1 = mysqli_query($link, $insert);
        $Result2 = @mysqli_query($link, $SQL) or die ("DB ERROR");
        echo(mysqli_num_rows($Result2));
    }
    else
    {
        echo"Username Already Used";
    }
}

mysqli_close($link);

最佳答案

$insert = "INSERT INTO 'accounts' ('Username', 'Password') VALUES ('" .$Username . "', MD5('" . $Password . "'), 0)";

答案:用户名和密码是字段,但您试图插入用户名、密码和 0

建议:不要只做 MD5 加密,它非常容易解密。

编辑: 也就像@andrewsi 在评论中所说,如果您只检查它是否为空,那么任何人都可以 SQL 注入(inject)您的数据库并删除您的表或进行更改。确保您正确过滤输入。

关于PHP代码执行但不插入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36518576/

相关文章:

php - 用于 SELECT AVG(column) 的 MySQL PHP 返回资源 ID 3

php - PHP 脚本中需要的逻辑帮助

javascript - JavaScript 中的高级表单验证

mysql - 添加到mysql表行

c# - 在 C# 中创建数据库应用程序的最佳方式

mysql - 执行 CREATE USER 后的默认 MySQL 用户权限

php - 从多个 curl 请求向数组添加值

PHP 如果不是空行则更新,否则插入

php - 正则表达式仅适用于 URL 中的特定域名

php - 在数据库中搜索内容 (2) - SELECT - 需要在 2 个表中搜索