Я бы предложил использовать подготовленные операторы с именованными параметрами:
$stmt = $dbh->prepare("SELECT * FROM blog WHERE category=:category ORDER BY date DESC LIMIT 4");
$stmt->bindParam(':category', $category);
$stmt->execute();
PDO автоматически обернет кавычки вокруг параметра category
, если это строка.
Если значение $category
не исходит из ненадежного источника, вы можете изменить свой код следующим образом:
$sth = $dbh->query("SELECT * from blog WHERE category='$category' ORDER BY date DESC LIMIT 4");
/** OR **/
$sth = $dbh->query('SELECT * from blog WHERE category="'.$category.'" ORDER BY date DESC LIMIT 4');
Обратите внимание, что в приведенном выше случае вам do нужны кавычки вокруг переменной $category
, поскольку вы сами строите строку запроса.