Het invoegen van gegevens in mysqli werkt niet

Ik vraag me af waarom mijn insert-statement niet werkt. Er worden geen records weergegeven in de database en er worden geen fouten weergegeven. Hier is de code

<?php 
    if(isset($_POST['submit'])){
        $username = trim($_POST['username']);
        $password = trim($_POST['password']);
        $conf_pass = trim($_POST['conf_password']);
        $email = trim($_POST['email']);
        require_once('./includes/Db/CheckPassword.php');
        $check_pwd = new Db_CheckPassword($password);
        $passwordOK =$check_pwd->check();
        $password_match = Db_CheckPassword::confirmPassword($password,$conf_pass);
        require_once('./includes/Db/CheckUsername.php');
        $check_user = new Db_CheckUsername($username,$conn);
        $userOK = $check_user->check();

        if($userOK && $passwordOK && $password_match){
            $hashedpass = crypt($password);

            $sql = "INSERT INTO accounts ('username','password','email') VALUES('{$username}','{$hashedpass}','{$email}')";
            $conn->query($sql);
        }else{
            $pass_error =  $check_pwd -> getErrors();
            $user_error  = $check_user->getErrors();
        }
    }
?>

Dit is waar ik records in de database invoeg

if($userOK && $passwordOK && $password_match){
                $hashedpass = crypt($password);

                $sql = "INSERT INTO accounts ('username','password','email') VALUES('{$username}','{$hashedpass}','{$email}')";
                $conn->query($sql);
0
probeer echo $ sql; en kopieer het resultaat in de db, je zult dan je probleem leren kennen
toegevoegd de auteur meWantToLearn, de bron
Ik zie in één oogopslag niets verkeerds, heb je nog andere kolommen in de tabel die misschien niet nul zijn?
toegevoegd de auteur Fluffeh, de bron
U moet nu doorgaan naar BOB . MySQL _ en mysqli _ zijn oude technologie.
toegevoegd de auteur Jared Farrish, de bron

1 antwoord

In mySQL is het identifier quote character de backtick, dus vervang de enkele aanhalingstekens rondom de kolomnamen door backticks:

$sql = "INSERT INTO accounts (`username`,`password`,`email`)    
                     VALUES('{$username}','{$hashedpass}','{$email}')";
1
toegevoegd