为什么数据没有插入数据库[重复]

I don't know what is wrong with this code. The data isn't inserting into the database.

       $connection = mysqli_connect('localhost', 'root', '', 'login-system');
if ($connection) {
    echo "everything works fine";
} else {
    echo "there is something wrong";
}
if (isset($POST['submit'])) {
    $username = $POST['username'];
    $password = $POST['password'];
    $query = "INSERT INTO users(username, password)";
    $query .= 'VALUES("$username", "$password")';
    $result = mysqli_query($connection,$query);
    if (!$result) {
    die('Query Failed'. mysqli_error());    
    }
}

Do you have any suggestion why this not working. Remember the server gets connected to database but not inserting data.

Thanks

</div>

The problem is you are using $POST['submit'] which is wrong you need to use

$_POST['submit'] 

because php does not have any variable called $POST. Your full code should be like this.

include_once 'db.php';

if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $query = "INSERT INTO users(username, password) VALUES('$username', '$password')";
    $result = mysqli_query($connection,$query);

    if (!$result) {
        die('Query Failed'. mysqli_error($connection));    
    }
}

NOTE: Your code is open to SQL injection attack you need to use prepared query.

your $query string alter to this query width . oprator attach 2 string

include_once 'db.php';

if (isset($POST['submit'])) {
    $username = $POST['username'];
    $password = $POST['password'];
    $query = "INSERT INTO users(username, password)";
    $query .= 'VALUES("'.$username.'", "'.$password.'")';
    $result = mysqli_query($connection,$query);

    if (!$result) {
        die('Query Failed'. mysqli_error());    
    }
}

Add Some White Space before VALUES in query concatenation

 $connection = mysqli_connect('localhost', 'root', '', 'login-system');
if ($connection) {
    echo "everything works fine";
} else {
    echo "there is something wrong";
}
if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $query = "INSERT INTO users(username, password)";
    $query .= ' VALUES("$username", "$password")';// Here add space before VALUES
    $result = mysqli_query($connection,$query);
    if (!$result) {
    die('Query Failed'. mysqli_error());    
    }
}

I tried it on my side. I found $_POST variable does not have submit so it does not go into if block. Remove if condition it will work fine. The new code can be like below.

if ((is_array($_POST)) && (count($_POST) > 1)) {
  $username = $_POST['username'];
  $password = $_POST['password'];
  $query = "INSERT INTO users(username, password)";
  $query .= " VALUES('$username', '$password')";
  $result = mysqli_query($connection,$query);
  if (!$result) {
    die('Query Failed'. mysqli_error());    
  }
}

Hope it will help you. Let me know if have any problem with it. Happy coding :)

Try different way :)

 $connection = mysqli_connect('localhost', 'root', '', 'login-system');
  if ($connection) {
    echo "everything works fine";
  } else {
    echo "there is something wrong";
  }
 if ($_SERVER['REQUEST_METHOD']=='POST') {
  $username = $_POST['username'];
  $password = $_POST['password'];
  $query = sprint_f("INSERT INTO users set username='%s', password='%s'" ,$username,$password);
 $result = mysqli_query($connection,$query);
  if (!$result) {
   die('Query Failed'. mysqli_error());    
 }

}