这个问题在这里已经有答案了:
在mysql中将保留字用作表名或列名时出现语法错误(1个答案)
mysql:“sql语法错误…靠近键…”[关闭](6个答案)
引用-这个错误在php中是什么意思(36个答案)
两年前关门了。
我正在尝试执行sql插入,但出现错误:
sqlstate[42000]:语法错误或访问冲突:1064您的sql语法有错误;请查看与mysql服务器版本对应的手册,以获取使用near(key)值的正确语法(example@example.com,您好)在1号线
表中的值是:id(自动递增)、email和key,它们都是varchar(255),id是(int)。
function validate($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$key = 'hello';
$email = validate($_POST['email']);
$insert = $user->recordPasswordReset($email, $key);
public function recordPasswordReset($email, $key)
{
try
{
$db = DB();
$sql = "INSERT INTO password_reset(email, key) VALUES (:email, :key)";
$stmt = $db->prepare($sql);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':key', $key, PDO::PARAM_STR);
$stmt->execute();
}
catch (PDOException $e)
{
echo ($e->getMessage());
}
}
有人能看到我代码中的错误吗?
1条答案
按热度按时间pdtvr36n1#
首先,根据文件,你的域名
key
是保留关键字。你需要在它周围用记号。改变,
到,
第二,请不要使用一体化的消毒功能,因为它们通常有某种形式的缺陷。
第三,在类之外使用可见性关键字。