@roknsev

Правильно ли составлен объединённый Mysql запрос?

Доброго дня.
Возникла такая задача...
Есть 2 таблицы posts и posts_category.
По url нам приходит переменная $name, дальше мы проверяем есть ли в таблице posts_category запись с этим $name и выдёргиваем от туда ID. После, есть ли в posts записи с этим posts_category_id. Вот что у меня получилось!

$query = mysql_query("SELECT * FROM posts, posts_category WHERE posts_category.category_alias='$name' AND posts.posts_category_id = posts_category.category_id");


Код работает, интересует правильность написания. Может правильнее будет написать как принято)
Не пенайте пожалуйста :)
  • Вопрос задан
  • 2378 просмотров
Решения вопроса 2
Да в общем-то такой вариант написания тоже приемлем.
Хотя я сейчас стараюсь всё джойнами расписывать. Так как-то понятнее получается.
И да, пора уже на PDO переходить.
Ответ написан
Комментировать
Согласен с @aspetek, ваш код подвержен SQL-инъекциям. Через PDO это будет выглядеть примерно так:
$pdo = new PDO("mysql:host=localhost;dbname=...;","db_user","password");
$statement = $pdo->prepare(
    "SELECT * FROM posts p JOIN posts_category pc ON pc.category_id = p.posts_category_id 
        WHERE pc.category_alias = ?"
);
$statement->bindValue(1, $name, \PDO::PARAM_STR);
$statement->execute();
$result = $statement->fetchAll(\PDO::FETCH_ASSOC);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@roknsev Автор вопроса
Спасибо за ответ))) Перешел на mysqli )))
+ $name обрабатываю регуляркой )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы