плейсхолдерами могут быть только значения полей, но не имена полей/таблиц/etc.
то есть ваш запрос все равно не выполнится, даже с правильным экранированием.
имена полей принято заключать в обратные кавычки для избежания конфликтов c ключевыми словами самого SQL.
FanatPHP, в том случае, если таблица создается на введенных параметрах пользователя. Например, создал пользователь себе профиль с логином sql инъекции, а мы планируем на основании логина создать таблицу... Или, как изначально планировалось в коде вопроса.
FanatPHP, так логин и нужно прогнать через mysqli_real_escape_string() перед вставкой в запрос на создание таблицы, чтобы немного обезопаситься от инъекций. Хоть по данному случаю уже от логина отказался, и перешел на числа и таблицы по ID.
что такое "немного" обезопаситься? Это типа как вместо презерватива использовать святую молитву "авось пронесёт"?
И я в третий раз задаю вопрос, на который ты никак не можешь ответить: какое отношение имеет эта функция к именам таблиц? И если уж на то пошло - вообще к SQL инъекциям?
Никак, придётся подставлять переменную вручную, предварительно отсекая из неё всё лишнее. Так как для названия таблицы можно использоваться только [A-z_0-9], проблем с фильтрацией не возникнет
FanatPHP, где ты увидел бэкслэш? Все прекрасно поняли, что это кусок регулярки, если нет, то перед тем как лезть в БД нужно сначала учить сам язык. Срач ради срача какой-то провоцируешь