正如您在标题中看到的那样,我的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";
}
以下代码完美地执行到最后一行。但是当我去检查我的数据库时,我没有任何东西://(我对连接没有任何问题,一切都很好)。
答案 0 :(得分:2)
组是一个保留的关键字,所以你需要反推作为
`group`
INSERT into `users`
(
pseudo, email, password, skype, reg_date, rank, picture, reg_ip, last_ip, `group`
)
点击这里
答案 1 :(得分:1)
我建议您在设计时避免此问题,您可以使用反引号更改列名称(user_group)或其他名称。
答案 2 :(得分:0)
任何你使用MYSQL RESERVED KEYWORD
你需要用反引号来逃避它,这会让数据库明白它是一个列
`group`
来自文档
某些单词(如SELECT,DELETE或BIGINT)是保留的,需要特殊处理才能用作表名和列名等标识符。对于内置函数的名称也可能是这样。