【发布时间】:2019-08-06 22:07:31
【问题描述】:
输出 查询失败
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“b98535103096dd0e8f59a5c6c92b9008”附近使用正确的语法
<?php
function clean($string){
return htmlentities($string);
}
function redirect($location){
return header("Location: {$location}");
}
function set_message($message){
if(!empty($message)){
$_SESSION['message'] =$message;
}
else{
$message="";
}
}
function display_message(){
if(isset($_SESSION['message'])){
echo $_SESSION['message'];
unset($_SESSION['message']);
}
}
function activate_user(){
if($_SERVER['REQUEST_METHOD']=="GET"){
if(isset($_GET['email'])){
$email=clean($_GET['email']);
$validation_code = clean($_GET['code']);
$sql = "SELECT id FROM users WHERE email='".escape($_GET['email'])."' AND validation_code'".escape($_GET['code'])."' ";
$result=query($sql);
confirm($result);
if(row_count($result)==1){
$sql2 = "UPDATE 'users' SET 'active' = 1, 'validation_code' = 0 WHERE 'email' = '".escape($email)."' AND 'validation_code' = '".escape($validation_code)."' ";
$result2=query($sql2);
confirm($result2);
set_message("<p class='bg-success'>Your account has been activated</p>");
redirect("login.php");
}
else{
set_message("<p class='bg-danger'>Your account has not been activated</p>");
redirect("login.php");
}
}
}
}
?>
【问题讨论】:
-
请将代码范围缩小到发生错误的地方。失败的 SQL 语句是什么?参数是什么?
-
UPDATE sql2有问题
-
了解prepared 的PDO 和MySQLi 语句,并考虑使用PDO,it's really pretty easy。