Простой MySQL SELECT с PDO - PullRequest
       2

Простой MySQL SELECT с PDO

1 голос
/ 23 марта 2012

Как фильтровать по столбцам с помощью PDO?У меня есть следующее:

$sth = $dbh->query('SELECT * from blog ORDER BY date DESC LIMIT 4');  

Это, очевидно, возвращает последние 4 результата.Я хочу добавить еще один шаг и отфильтровать его по столбцу с именем category

Итак, что-то вроде:

$sth = $dbh->query('SELECT * from blog WHERE category=NAME-HERE ORDER BY date DESC LIMIT 4'); 

Спасибо!

1 Ответ

4 голосов
/ 23 марта 2012

Я бы предложил использовать подготовленные операторы с именованными параметрами:

$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, поскольку вы сами строите строку запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...