過去 XX 分間にログインしたユーザーのリストを提供するために、PHP と PDO を使用して作成している SELECT ステートメントがあります。時間間隔をハードコーディングすると、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