Задать вопрос
@Slava191

Есть ли принципиальная разница между данными двумя подготовленными запросами запросами?

Данные приходят от пользователей ТОЛЬКО НА ВХОД:

$id = $_GET[id]; //нужен только Int, однако со стороны пользователя может придти что угодно.
$changing = $_GET[changing];


Вариант 1.

$stmt = $this->db->prepare("UPDATE table SET changing =? WHERE id=?");   
$stmt->execute(array($changing, $id));


Вариант 2.

$stmt = $this->db->prepare("UPDATE table SET changing =? WHERE id=?");   
$stmt->bindValue(1, $changing, PDO::PARAM_STR);
$stmt->bindValue(2, $id, PDO::PARAM_INT);
$stmt->execute();


В чем разница между двумя вариантами с точки зрения безопасности и производительности?
  • Вопрос задан
  • 101 просмотр
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
В первом варианте меньше лишней писанины, а так никакой.

Если говорить о mysql, то есть лишь несколько пограничных случаев, когда требуется явно задавать тип переменной, но в большинстве случаев это лишнее.
Ответ написан
Комментировать
netrox
@netrox
Второй вариант читабельнее, а так никакой .
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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