Как сделать аргумент метода в виде названии таблицы

В метод пишу аргумент таблицы. Дальше мне нужно сделать запрос. Но вот проблема, это не работает.

Вот так это работает, но как я понял, это плохо со стороны безопасности сайта

# Проверка на существование поста
public function isExists($id, $table)
{
    $vars = [
        'id' => $id,
    ];
    return $this->db->column("SELECT `id` FROM $table WHERE `id` = :id", $vars);
}

Мне нужно, чтобы это работало вот так:

# Проверка на существование поста
public function isExists($id, $table)
{
    $vars = [
        'id' => $id,
        'table_checker' => $table
    ];
    return $this->db->column("SELECT `id` FROM :tablechecker WHERE `id` = :id", $vars);
}

Это PHP MVC. Класс Database:

<?php

namespace application\core;

use PDO;

class Database 
{

protected $db; // Protected поле db в него помещается соединение с базой данных

// Конструктор помещает в определенные поля, нужные параметры
public function __construct() 
{
    $config = require 'application/configs/db.php';
    extract($config);
    $this->db = new PDO('mysql:host='.$host.';dbname='.$dbname.';charset=utf8;', $username, $password);
    $this->db->query("SET NAMES 'utf8'");
}

// Метод query отвечает за выполнение запроса через mysql
public function query($sql, $settings = []) 
{
    $preparedRequest = $this->db->prepare($sql);
    if (!empty($settings)) {
        foreach ($settings as $k => $v) {
            if(is_int($v)) {
                $type = PDO::PARAM_INT;
            } else {
                $type = PDO::PARAM_STR;
            }
            $preparedRequest->bindValue(':'.$k, $v, $type);
        }
    }
    $preparedRequest->execute();
    return $preparedRequest;
}

// Метод row отвечает за выполнение select запроса через mysql в определенном виде
public function row($sql, $settings = []) 
{
    $result = $this->query($sql, $settings);
    return $result->fetchAll(PDO::FETCH_ASSOC);
}

// Метод column отвечает за выполнение select запроса через mysql в определенном виде
public function column($sql, $settings = []) 
{
    $result = $this->query($sql, $settings);
    return $result->fetchColumn();
}

Ответы (0 шт):