首页 > 解决方案 > Mysql数据库插入“空白”数据而不是用户通过php连接输入的实际数据

问题描述

我正在通过 php 练习一些关于 MySQL 数据库连接的知识。但是,我遇到了一些问题。由于插入了用户输入到 MySQL 数据库本身的实际用户名和密码,因此只有空白行或包含空(ps。它不是 NULL,只是空)数据的行被插入其中。以下是我如何创建用户必须输入的实际表单。

<?php
session_start();
include("testconnect.php");
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login Page</title>
</head>
<body>
<style>
    #signup-box{
        margin:auto;
        width: 300px;
        padding: 30px;
        background-color: grey;
    }

</style>
    <div id="signup-box">
        <form method="POST">
            <input style="width:100%" type="text" name="Username"><br><br>
            <input style="width:100%" type="password" name="Password"><br><br>
            <input type="button" value="Submit">
        </form>
    </div>

    
</body>
</html>

这就是我声明我的 php mysql 连接的方式。

<?php

        $conn=mysqli_connect('localhost','root','','practice') or die ("unable to connect to database");
        $username1=mysqli_real_escape_string($conn,$_POST['Username']);
        $password1=mysqli_real_escape_string($conn,$_POST['Password']);
        
        
        $query="insert into usertable values('$username1','$password1')";
        mysqli_query($conn,$query);

我希望这里有人可以帮助我解决我的这个小问题。

附言。已经到处寻找解决方案,但所提供的解决方案似乎都没有解决问题。附言。已经检查了db连接,但似乎完全没有问题

标签: phpmysql

解决方案


如果我们假设您要插入数据库的 PHP 代码是testconnect.php,您必须在表单标签中提供一个操作。在您的代码中,在浏览器中向您显示任何内容之前的第一件事是插入 SQL,然后表单将显示给您。你提供的代码是这样的:

<?php
session_start();
 $conn=mysqli_connect('localhost','root','','practice') or die ("unable to connect to database");
        $username1=mysqli_real_escape_string($conn,$_POST['Username']);
        $password1=mysqli_real_escape_string($conn,$_POST['Password']);
        
        
        $query="insert into usertable values('$username1','$password1')";
        mysqli_query($conn,$query);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login Page</title>
</head>
<body>
<style>
    #signup-box{
        margin:auto;
        width: 300px;
        padding: 30px;
        background-color: grey;
    }

</style>
    <div id="signup-box">
        <form method="POST">
            <input style="width:100%" type="text" name="Username"><br><br>
            <input style="width:100%" type="password" name="Password"><br><br>
            <input type="button" value="Submit">
        </form>
    </div>

    
</body>
</html>

所以需要把它改成这样:

<?php
session_start();

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login Page</title>
</head>
<body>
<style>
    #signup-box{
        margin:auto;
        width: 300px;
        padding: 30px;
        background-color: grey;
    }

</style>
    <div id="signup-box">
        <form action="testconnect.php" method="POST">
            <input style="width:100%" type="text" name="Username"><br><br>
            <input style="width:100%" type="password" name="Password"><br><br>
            <input type="button" value="Submit">
        </form>
    </div>

    
</body>
</html>

推荐阅读