Как правильно включить var при создании таблицы в MySQL PHP - PullRequest
0 голосов
/ 23 февраля 2011

Как правильно добавить переменную в имя таблицы моего sql-запроса?Я пробовал

CREATE TABLE `'$username'_table` 

, но это просто создает

'username'_table 

Я пытался разорвать другие комбинации, но я просто продолжаю получать что-то с пробелом или кавычками, я просто хочу показатькак просто

username_table






function makeUserTable($username)
           {
           return mysql_query("

    CREATE TABLE `'$username'_table` (
      `userid_id` bigint(255) unsigned NOT NULL AUTO_INCREMENT,
      `userid` varchar(255) NOT NULL DEFAULT '',
      `username` varchar(25) NOT NULL DEFAULT '',
      PRIMARY KEY (`userid_id`)
    )

    ");
           }

1 Ответ

2 голосов
/ 23 февраля 2011

Использование {}:

`{$username}_table`

Однако создание таблиц на основе имен пользователей никогда не является хорошей идеей.Например, поведение именования таблиц в MySQL будет различаться в зависимости от операционной системы - имена таблиц будут чувствительными к регистру в Linux / Unix и нечувствительными в Windows.Кроме того, диапазон разрешенных символов будет варьироваться от файловой системы к файловой системе.

Обычно гораздо лучше иметь одну большую таблицу со столбцом username.

Кроме того, метод уязвим для внедрения SQL.Если вы решите пойти по этому пути, $username необходимо правильно очистить.Обратите внимание, что ни mysqli, ни PDO не могут работать с именами таблиц в качестве параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...