Зачем писать WHERE `id` = :id, если можно написать WHERE `id` = $id ?

Допустим, в этой функции:

public static function getById(int $id): ?self
    {
        $db = Db::getInstance();
        $entities = $db->query('SELECT * FROM `' . static::getTableName() . '` WHERE `id` = :id;', [':id' => $id], static::class);
        return $entities[0] ?: null;
}

Здесь уже стоит типизация: int $id , значит ничего, кроме int передаться не может. Или я не правильно понимаю?

dima1 22.05.2020 в 13:39

Ответы (1)


Конкретно в этом примере можно так написать. Но лучше ввести использование параметризованных запросов в привычку - так точно не будет дыр.

ivashkevich 26.05.2020 в 10:26

Добавить новый ответ