Задать вопрос
jasonOk
@jasonOk
Легче болтать, чем код писать

Как правильно будет в PDO?

Есть выражение
$query = mysql_query("SELECT `id` FROM `users`  WHERE `id`='".$_POST['id']."' limit 1"); 
 $row = mysql_num_rows($query); 
if ($row){
       echo "Есть";
    
  }else{
        echo "Нет";
      }

но как можно понять его безопасность равна 0.
Я переделал на PDO, но не работает.
$id = filter_var($_POST['id'], FILTER_SANITIZE_NUMBER_INT);
$query = $DB->prepare("SELECT `id` FROM `users` WHERE `id`=:id limit 1");
$query->bindParam(':id', $id);
$query->execute();
$row = $query->rowCount();
if ($row){
       echo "Есть";
    
  }else{
        echo "Нет";
      }

Как будет правильно и абсолютно безопасно?
  • Вопрос задан
  • 202 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
iDokuro
@iDokuro
Тугодум
<?php
$query = $DB->prepare('SELECT `id` FROM `users` WHERE `id` = ?');
$query->execute([(int) $_POST['id']]);

if ($query->rowCount())
{
    // Да
}
else
{
    // Нет
}

Если и так не работает, то включите показ ошибок или покажите логи
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽