Создание таблицы mysql с переменной PHP

У меня возникла проблема с созданием таблицы SQL с переменной PHP.

Скажем, $ tbl_date = "data";

mysql_query('CREATE TABLE '.$tbl_date.' ( Test varchar(15), Yes varchar(15), Very int )'); 

Он не создает таблицу.

Solutions Collecting From Web of "Создание таблицы mysql с переменной PHP"

Похоже, что он не работает, потому что имя вашей таблицы не указано в кавычках. Попробуй это:

 mysql_query('CREATE TABLE `'.$tbl_date.'` ( `Test` varchar(15), `Yes` varchar(15), `Very` int )'); 

И то же самое относится к именам полей.
Также попробуйте это, его легче читать люди:

 mysql_query("CREATE TABLE `{$tbl_date}` ( `Test` varchar(15), `Yes` varchar(15), `Very` int )"); 

Обратите внимание на различные типы котировок:
– одинарные кавычки и двойные кавычки для построения некоторой строки (например, SQL-запрос) в PHP
– обратные кавычки, используемые специально как часть SQL-запроса для имен таблиц и имен столбцов

Я думаю, что вам не хватает форматирования (одиночные или двойные кавычки и т. Д.), Попробуйте это

 $sql = "CREATE TABLE `user` (`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(255) NOT NULL, `address` TEXT NOT NULL) ENGINE = MyISAM;"; 

Вот моя работа:

 $cars = "CREATE TABLE $tbl_date ( Test varchar(15), Yes varchar(15), Very int )"; $results = mysql_query($cars) or die (mysql_error()); 

Да, но вы должны быть осторожны, чтобы пользователь не вводил код. Загляните в mySQL-инъекцию, чтобы убедиться, что ваш код безопасен, иначе пользователь может создавать или удалять таблицы, к которым вы не хотите иметь доступ. Кроме того, я не понимаю, почему вы хотели бы, конечно, было бы лучше создать таблицу в базе данных, а затем добавить поля со строками, которые могут быть добавлены впоследствии.

Да, ты можешь.

mysql_query принимает строку, поэтому вы можете в принципе присоединить любую динамическую строку.

Как и было предложено, вам необходимо использовать обратные элементы до и после имени таблицы (и проверить, имеет ли пользователь вашего соединения права на создание таблиц).

Основная проблема с этим использованием заключается в том, что вы уязвимы для SQL-инъекции (пока вы не избегаете $tbl_date ), поэтому я предлагаю вам добавить гораздо больше элементов управления к используемой переменной.

Кроме того, добавление динамических таблиц в базу данных (исключая базы данных noSQL) обычно является использованием BAD (проверьте, действительно ли вам это нужно).