私はこのクエリを持っています:
$query = $db->query("SELECT
posts.post_topic_id,
posts.post_content,
posts.post_id,
posts.post_date,
posts.post_by,
posts.post_votes_total,
posts.post_suggested_amount,
posts.post_accepted,
posts.post_last_edited,
posts.post_edit_sum,
users.user_id,
users.username
FROM
posts
JOIN
users
ON
posts.post_by = users.user_id
WHERE
posts.post_topic_id = :topic_id
ORDER BY
:sort
LIMIT :start , :per_page
");
$query->bindParam(':topic_id', $topic_id, PDO::PARAM_INT);
$query->bindParam(':sort', $sort, PDO::PARAM_STR);
$query->bindParam(':start', $start, PDO::PARAM_INT);
$query->bindParam(':per_page', $per_page, PDO::PARAM_INT);
$query->execute();
しかし、それは実行されず、代わりにエラーが発生します:
例外 'PDOException' とメッセージ 'SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。C:\htdocs\lr\topic.php:577 スタック トレース: #0 C :\htdocs\lr\topic.php(577): PDO->query('SELECT???? ...') #1 {main}
ステートメントを準備せず、通常の変数を使用すると、クエリは問題なく実行されます。
私の間違いは何ですか?