Здравствуйте!
Я в этом вопросе менее чем новичок.И мало чего понимаю.
Просто хотелось понять чтобы спать спокойно.
Если кто то может объяснить как в d7 database api реализована защита от
sql инъекций?
Например имею запрос сохраняющий текстовые данные поля из формы:
<?phpdb_insert('mytable')
->fields(array(
'myfield' => $form_state['values']['myfield'],
))
->execute(); ?>
вставляю в поле "te'st" и вижу в базе в точности то же самое "te'st".
Должно ли оно делать что нибудь с этим типа "te'/st"? Или что то другое?
И все ли нормально? Я в этом слабо разбираюсь, может быть оно экранирует , но я этого просто не понимаю?
Может быть ошибки в моем коде?
В 6 использовалась параметризация в запрос вместо значения подставлялись подставлялись:
# %d — для целых чисел (integers)
# %s — для строк
А для 7 написано, что этого делать уже не нужно, что все типа уже включео в api?
Хочется верить, что заоблачные гуру (разработчики api) уже все за тебя предусмотрели и над этим парится не нужно.
Однако хотелось понять как это работает? Есть ли защита от инъекций?
Комментарии
Вы предлагаете не сохранять в текстах символы " и ' ?
В семерке всё работает на основе PDO.
Так что можешь смело подставлять в запрос хоть $_GET['ololo'] - ничего не случится. Точнее SQL инъекция не произойдёт, разве что логические ошибки в дальнейшей работе скрипта.