Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Mysql Создать таблицу из переменной с типом данных ?

n0bleman Ученик (4), открыт 3 недели назад
Так все работает
Создается таблица с колонкой у которой тип данных VARCHAR(100)

$sql = "CREATE TABLE `".$tablename."` ( `".$columnname."` VARCHAR(100))";

Пытаюсь задать тип данных из переменной так уже не пашет
$datatype="VARCHAR(15)";
$sql = "CREATE TABLE `".$tablename."` ( `".$columnname."` `".$datatype."`)";
Пробовали и так

$sql = "CREATE TABLE `".$tablename."` ( `".$columnname."` \''.$datatype.'\')";

И так

$sql = "CREATE TABLE `".$tablename."` ( `".$columnname."` '.$datatype.')");
Дополнен 3 недели назад
Решение найдено оказывается надо было просто так
$datatype без ковычек всяких странно почему только если в другим запросах mysql нужны ковычки

$sql = "CREATE TABLE `".$tablename."` ( `".$columnname."` $ctype)";
2 ответа
Андрей Высший разум (470179) 3 недели назад
Ты запутался в кавычках и скобках.

PHP умеет вставлять значения переменных непосредственно в строку:
 $sql = "CREATE TABLE `{$tablename}` (`{$columnname}` {$datatype})"; 

Или можно использовать форматный вывод в строку:
 $sql = sprintf("CREATE TABLE `%s` (`%s` %s)", $tablename, $columnname, $datatype); 
n0blemanУченик (4) 3 недели назад
А как при создание задать занчение колонке ?
$columnvalue еще
$sql = "CREATE TABLE `".$tablename."` ( `".$columnname."` $datatype)";
n0blemanУченик (4) 3 недели назад
$columnvalue еще
$sql = "CREATE TABLE `".$tablename."` ( `".$columnname."` $datatype, $columnvalue)";
n0blemanУченик (4) 3 недели назад
Так ?
n0blemanУченик (4) 3 недели назад
$sql = "CREATE TABLE `".$tablename."` ( `".$columnname."` $datatype DEFAULT \''.$columnvalue.'\')";
n0blemanУченик (4) 3 недели назад
Подобрал $sql = "CREATE TABLE `".$tablename."` ( `".$columnname."` $datatype DEFAULT '$columnvalue')";
n0blemanУченик (4) 3 недели назад
Спасибо вам большое в столько разных ковычек запутаешься реально и везде по разному работают
Вячеслав Рожнев Профи (884) 3 недели назад
Если вам нужно создавать таблицы из кода - значить у вас скорее всего проблема с архитектурой проекта.
Похожие вопросы