尝试将值插入MySQL表后出现此错误。
表:插入值列表不匹配列列表:1136列计数不匹配第1行的值计数
CREATE TABLE `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`password` char(64) COLLATE utf8_unicode_ci NOT NULL,
`first_name` char(255) COLLATE utf8_unicode_ci NOT NULL,
`last_name` char(255) COLLATE utf8_unicode_ci NOT NULL,
`salt` char(16) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
PHP: $query = "
INSERT INTO
users (username, password, first_name, last_name, salt, email)
VALUES (:username, :password, :first_name, :last_name :salt, :email) ";
$query_params = array(
':username' => $_POST['username'],
':password' => $password,
':first_name' => $_POST['first_name'],
':last_name' => $_POST['last_name'],
':salt' => $salt,
':email' => $_POST['email']
);
try {
// Execute the query to insert user into table
$statement = $database->prepare($query);
$result = $statement->execute($query_params);
} catch(PDOException $ex) {
$response["success"] = 0;
$response["message"] = "Insert failed".$ex->getMessage();
die(json_encode($response));
}
我不明白这个问题,非常感谢您的帮助。
缺少逗号:
[..snip..]:first_name, :last_name :salt, :email) ";
^---
由于您缺少,
,因此只有5个值可用于您的6字段INSERT
。