Эта функция для тех, кто не освоил подготовленные выражения и продолжает конструировать SQL-запросы конкатенацией строк. Добавляет бэкслэши перед символами вроде кавычек и переносов, чтобы доброумышленник смог невозбранно сохранять в ней кавычки (одиночные и двойные), переходы на новую строку (как CR, так и LF), \Z, бэкслэши, символы с нулевым кодом, и не смог "нечаянно" совершить SQL-укольчик с галоперидолом, при условии, что автор кода умеет правильно пользоваться этой функцией, всегда вручную обрамляет полученный результат в одинарные кавычки, а также не использует расово неверных кодировок, способных трактовать бэкслэш как часть предыдущего многобайтного символа на радость доброумышленнику.
Дисклеймер для зануд:
Функция mysqli_real_escape_string принимает на вход строковой тип данных. Крайне не рекомендуется передавать туда числа, булевы переменные, массивы, объекты, совать туда пальцы, другие части тела, животных, детей, беременных женщин, веганов, инвалидов, ветеранов войны, пассажиров с детьми, оружие, взрывчатые вещества, радиоактивные вещества, химические вещества, наркотики, лекарственные препараты, продукты питания, отходы жизнедеятельности, детскую порнографию, суицид, биткойны, экстремистские материалы, фашистскую символику, религиозную символику, политическую символику, чиновников, депутатов госдумы, президента, иллюминатов, лидера всемирного заговора лично, а также собственную самооценку. Несоблюдение этих правил может стоить вам здоровья (как физического, так и психического), жизни, счастья, хорошего настроения, пенсии, душевного равновесия, целостности скреп, баланса во вселенной. С целью надзора за соблюдением правил к вам был приставлен персональный товарищ майор, отслеживающий каждое ваше действие, а также каждое ваше бездействие. Запрещено передавать товарища майора в функцию, так как это может привести к коллапсу солнечной системы и к гибели человечества. Мы предупредили. Не стоит вскрывать эту тему.