Как правильно пользоваться bindParam?
Здравствуйте. Какое то время назад я уже спрашивал как правильно экранировать данные, т.к я был уверен что modx->prepare меня уже защищает. А в паре с addslashes дак вообще, ни одна инъекция не пройдет. И вот сейчас снова я вернулся к этому вопросу более плотно.
Раньше я делал так:
Мне посоветовали если я вручную собираю PDO запросы использовать bindParam, но информации я не так много нашел…
Не срабатывает. Я где то ошибся? Весь вечер пытаюсь нагуглить, не получается…
Спасибо!
Раньше я делал так:
$data = addslashes($_POST['data']);
$q = $modx->prepare("INSERT INTO `table` (`name`,`data`) VALUES (null, '$data'));
Но как мне подсказали я ничего не фильтровал от инъекций возможных.Мне посоветовали если я вручную собираю PDO запросы использовать bindParam, но информации я не так много нашел…
$q = $modx->prepare("INSERT INTO `table` (`id`, `data`) VALUES (null, ':data')");
$q->bindParam(':data', $data, PDO::PARAM_LOB);
$q->execute();
Внутри $data может быть все, хтмл, цсс, тексты, кавычки.Не срабатывает. Я где то ошибся? Весь вечер пытаюсь нагуглить, не получается…
Спасибо!
Комментарии: 6
modx.pro/help/5271/ дык год назад про это разговор был :) и ссылку дали, не?
Да, Василий оставил на INSERT, но как быть с UPDATE?
$data = array($data,$id);
$modx->prepare("UPDATE `table` SET `data`=? WHERE `id` = ? LIMIT 1")->execute($data);
не срабатывает, именно по этому начал смотреть в сторону bindParam
Запросы INSERT и UPDATE на PDO (but1head где-то поделился, я к себе утащил)
Спасибо! Это кажется именно то что мне нужно. Остался вопрос, в этом случае я вообще не думаю про обработку данных? или addslashes использовать все же? На боевой среде не запустилось никак, пошел создал test.php — сработало все.
Ммм… вот про addslashes не знаю… Может, придут более подкованные специалисты и подскажут)) ¯\_(ツ)_/¯
Я кстати правильно понимаю что в текущей функции обновления может быть только 1 where параметр, и без лимитов и оффсетов?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.