INSERT不起作用


INSERT isn't working

正如您在标题中所读到的,我的INSERT有问题。我正在注册页面上工作,所以这里是我的代码:

if ($AllGood) {
        $Data = $DB->prepare("INSERT into `users` (pseudo, email, password, skype, reg_date, rank, picture, reg_ip, last_ip, group) VALUES (':pseudo',              ':email', ':password', ':skype', ':date', ':rank', ':picture', ':reg_ip', ':last_ip', ':group')");
        $Data->bindParam(':pseudo', $pseudo, PDO::PARAM_STR);
        $Data->bindParam(':email', $email, PDO::PARAM_STR);
        $Data->bindParam(':password', $pswd, PDO::PARAM_STR);
        $Data->bindParam(':skype', $shit, PDO::PARAM_STR);
        $Data->bindParam(':date', $date, PDO::PARAM_STR);
        $Data->bindParam(':rank', $rank, PDO::PARAM_STR);
        $Data->bindParam(':picture', $shit, PDO::PARAM_STR);
        $Data->bindParam(':reg_ip', $_SERVER['REMOTE_ADDR'], PDO::PARAM_STR);
        $Data->bindParam(':last_ip', $_SERVER['REMOTE_ADDR'], PDO::PARAM_STR);
        $Data->bindParam(':group', $shit, PDO::PARAM_STR);
        $Data->execute();
        $Data->closeCursor(); // End the connexion
            echo "YOU DONE PHP, GO TAKE A BREAK";
}

下面的代码完美地执行到最后一行。但是当我去检查我的DB时,我没有任何东西://(我根本没有连接问题,一切都很好)。

group是一个保留的关键字,所以你需要在

`group`
INSERT into `users` 
(
pseudo, email, password, skype, reg_date, rank, picture, reg_ip, last_ip, `group`
)

点击此处

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

我建议通过设计来避免这个问题,您可以将列名更改为(user_group)或使用反引号代替其他名称。

当你使用MYSQL RESERVED KEYWORD 时,你需要用' '来转义,这将让数据库理解它是一个列

`group`
从文档

SELECT、DELETE或BIGINT等特定的词是保留的,需要特殊处理才能用作标识符,如表名和列名。对于内置函数的名称也可能是这样。