в StewardDB все свалено в кучу. надо разделять драйвер для работы с БД и веб-обортку для CRUD операций. В качестве драйвера лучше взять phpfaq.ru/safemysql - он решает большинство проблем с при работе с БД, оставляя на уровне приложения только запрос и данные, всю обработку делая внутри.
И не надо ему рекомендовать писать враппер самому. пусть бы сначала поучился пользоваться пдо и освоил подготовленные выражения. без них ведь любой его враппер превратится в решето.
Подходит-подходит. Оно всем подходит. Если бы ты включил отображение ошибок, то давно бы нашел решение. Но стоять ныть и рассказывать всем, как они неправы - конечно же проще.
Экранировать надо ограничители строки. Это очевидно же - если у нас есть гораничитель, то внутри его надо экранировать, чтобы строка не прервалась прежде времени.
еще один любитель ID по порядку... Надо бы на тостере ценз вести. И всех тех, кто не понимает, что такое уникальный идентификатор - в read-only. Пусть читают, ума набираются.
MGriboedoff: НЕЛЬЗЯ. Ты не понимаешь, что такое спецсимволы, но туда же - "можно использовать и для защиты". Не позорься. Ты не представляешь, какую чушь сейчас написал.
MGriboedoff: читай внимательнее мои реплики. mysqli_real_escape не имеет отношения к безопасности. Вообще. И дело не в дурацкой страшилке про кодировку (во-первых, если делать не кривыми руками, то не будет никакого взлома через кодировку. Во-вторых, если даже делать так, как делают такие боровиковы - то тоже проблемы не будет, поскольку ни в одной из русских кодировок этой проблемы все равно нет). Дело в в том, что эта функция Никакого. Отношения. К. Защите. Не. Имеет.
Александр Боровиков: ё-моё. 21 век, второй десяток. И до сих пор приходится несчастным хомячкам объяснять, что mysqli_real_escape($str) и им подобные не имеют отношения к какой бы то ни было защите.
"в начале" пресечь невозможно. Это самое главное, что тебе надо понять (и что ты, судя по всему, уже начинаешь понимать). Логика тут простая: "черный список" (который ты предлагаешь), НИКОГДА не является 100% гарантией защиты. Гарантией является толкьо корректное форматирование данных. Но на входе форматировать данные для SQL попросту нельзя. Форматировать же данные надо только перед самым исполнением запроса. А это обеспечивают только подготовленные выражения