I am a beginner to PHP. I tried not to put $conn->prepare($sql_stmt) in one variable and just applied method chaining. But I got "Error while executing".
<?php
    include_once 'dbh.inc.php';
    if(isset($_POST['submit_btn']))
    {
        $fullname = $_POST['name'];
        $username = $_POST['username'];
        $password = $_POST['password'];
        $sql_stmt = "INSERT INTO signup (name, username, passwrd) VALUES (?,?,?);";
        //prepare and bind
        $conn->prepare($sql_stmt)->bind_param("sss", $fullname, $username, $password);
        
        //execute
        if($conn->prepare($sql_stmt)->execute())
        {
            echo "User created";
        }
        else
        {
            echo "Error while executing";
        }
        
    }
    else
    {
        echo "Unable to sign up.";
    }
However if I instantiate $sql = $conn->prepare($sql_stmt) like below
<?php
    include_once 'dbh.inc.php';
    if(isset($_POST['submit_btn']))
    {
        $fullname = $_POST['name'];
        $username = $_POST['username'];
        $password = $_POST['password'];
        $sql_stmt = "INSERT INTO signup (name, username, passwrd) VALUES (?,?,?);";
        //prepare and bind
        $sql = $conn->prepare($sql_stmt);
        $sql->bind_param("sss", $fullname, $username, $password);
        //execute
        if($sql->execute())
        {
            echo "User created";
        }
        else
        {
            echo "Error while executing";
        }
        
    }
    else
    {
        echo "Unable to sign up.";
    }
It works and returns "User created". Why is that so?
 
    