Всем привет. Я новичок в PHP+SQL (в моём случае MySQL).
Вообщем-то есть механизм добавляющий данные из форм в БД, и в этом механизме я использую функцию mysqli_real_scape_string для всех данных, вводимых пользователем, против возможных sql-инъекций. Но недавно мне подсказали, что профитнее в том же механизме, использовать функцию привязки переменных mysqli_stmt_bind_param. И так, и так код работает, но мне непонятно, какая функция полезнее, может быть какие-то подводные камни есть.
Вопрос сформулировал, как мог. Заранее спасибо за ответы.
Разобраться полезно, а в реальной работе использовать существующие подходы к работе с базой на более высоком
уровне. Выбери себе фреймворк по вкусу или готовые классы.
И будет приблизительно так.
$data_model->insert($new_record);
Функция mysqli_real_scape_string не предназначена для защиты против возможных sql-инъекций. И применять ее в таком качестве - прямой путь заполучить инъекцию.
В то время как одно из назначений функции mysqli_stmt_bind_param - это предотвращение sql-инъекций, поэтому применять её для этой цели можно и нужно.