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 "Нет";
      }

Как будет правильно и абсолютно безопасно?
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ответы на вопрос 1
iDokuro
@iDokuro
Тугодум
<?php
$query = $DB->prepare('SELECT `id` FROM `users` WHERE `id` = ?');
$query->execute([(int) $_POST['id']]);

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

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

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

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