我有一个通过 PHP 和 PDO 构建的 SELECT 语句,以提供在过去 XX 分钟内登录的用户列表。当我硬编码 SQL 语句执行的时间间隔时,当我尝试替换从 Web 表单中选择的间隔时,我得到一个 SQL 错误。我不确定出了什么问题。我正在使用 PDO 和 PREPARE 语句
try
{
$sql = 'SELECT DISTINCT PlayerName
FROM Player_Data pd LEFT JOIN character_data cd
ON pd.PlayerUID = cd.PlayerUID
WHERE cd.LastLogin > DATE_SUB(NOW(), :login_interval_value)';
$statement = $pdo->prepare($sql);
$statement->bindValue(':login_interval_value',$_POST['login_interval']);
$statement->execute();
$results = $statement->fetchAll();
}
catch (PDOException $e)
{
$error = 'Error getting player names: ' . $e->getMessage();
include 'error.html.php';
exit();
}
这是我得到的错误...
Error getting player names: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''INTERVAL 60 MINUTES')' at line 4