IwanQ
@IwanQ
Плохие времена часто дают прекрасные возможности

Как правильно получить WHERE страницы?

Здравствуйте.

Есть абстрактный класс код которого:

...
public static function updateViews(): array{
        $db = Db::getInstance();
        return $db->query('UPDATE `' . static::getTableName() . '` SET `views` = `views` +1', [], static::class);
    }
public static function getByUrl(string $url): ?self{
  $db = Db::getInstance();
  $entities = $db->query(
'SELECT * FROM `' . static::getTableName() . '` WHERE url=:url' ,
[':url' => $url],
static::class
);
return $entities ? $entities[0] : null;
}

...

Т.е. вот 2 функции, первая должна увеличивать просмотры на единицу, а другая получает url.

Контроллер

...
public function view(string $articleUrl){
      $article = Article::getByUrl($articleUrl);
      $updateViews = Article::updateViews();

...

И я не понимаю, как мне сделать WHERE для функции updateViews динамическим.
Т.е. я для теста сделал
return $db->query('UPDATE `' . static::getTableName() . '` SET `views` = `views` +1 WHERE id = 1', [], static::class);

Все работает, но как мне динамически подставить сюда url, который мы получаем в функции getByUrl?

Подскажите пожалуйста.
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Не лез бы ты в абстрактные классы пока.

А если по теме, то тебе же ведь уже раз 5 объясняли как пользоваться твоим собственным классом БД

$sql = 'UPDATE `' . static::getTableName() . '` SET `views` = `views` +1 WHERE id=?';
return $db->query($sql, [$article->id]);


Подставлять надо не урл, а найденный выше id
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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