无法动态创建mysql表

时间:2016-06-05 10:55:23

标签: mysql

我正在尝试创建一个用户输入广告数据的页面,并在获取输入后创建一个可以存储数据的表。正确传递的数据和始终确保生成的表名的方法将是唯一的。

但是我无法执行查询并且不知道为什么它不起作用。

我是初学者,因此任何建议都会非常感激。

我的代码如下:



$Tablename = $Title.$Mobileno;
echo $Tablename;
$sqltable = "CREATE TABLE $Tablename ( `ID` INT NOT NULL AUTO_INCREMENT , `Title` VARCHAR(30) NOT NULL , `Sname` VARCHAR(30) NOT NULL , `email` VARCHAR(50) NOT NULL , `descrip` VARCHAR(200) NOT NULL , `mno` INT(30) NOT NULL , `base` INT(30) NOT NULL , `cutoff` INT(30) NOT NULL , PRIMARY KEY (`ID`)) ENGINE = InnoDB";
mysqli_query($con,$sqltable);
if(!mysqli_query($con,$sqltable))
{echo "TABLE NOT MADE ";}
$sql = "INSERT INTO $Tablename(Title,Sname,email,descrip,mno,base,cutoff)VALUES('$Title','$Sname','$email','$Description','$Mobileno','$Base','$Cutoff')";
mysqli_query($con,$sqltable);
if(!mysqli_query($con,$sql))
{echo'not inserted';}
else {echo'inserted';}


?>




1 个答案:

答案 0 :(得分:0)

尝试使用引号tablename

进行封装
 "CREATE TABLE '$Tablename'  (
       `ID` INT NOT NULL AUTO_INCREMENT 
     , `Title` VARCHAR(30) NOT NULL 
     , `Sname` VARCHAR(30) NOT NULL 
     , `email` VARCHAR(50) NOT NULL 
     , `descrip` VARCHAR(200) NOT NULL 
     , `mno` INT(30) NOT NULL 
     , `base` INT(30) NOT NULL 
     , `cutoff` INT(30) NOT NULL 
     , PRIMARY KEY (`ID`)) ENGINE = InnoDB";

或使用字符串连接

      "CREATE TABLE '" . $Tablename."'  (
       `ID` INT NOT NULL AUTO_INCREMENT 
     , `Title` VARCHAR(30) NOT NULL 
     , `Sname` VARCHAR(30) NOT NULL 
     , `email` VARCHAR(50) NOT NULL 
     , `descrip` VARCHAR(200) NOT NULL 
     , `mno` INT(30) NOT NULL 
     , `base` INT(30) NOT NULL 
     , `cutoff` INT(30) NOT NULL 
     , PRIMARY KEY (`ID`)) ENGINE = InnoDB";

确保您正确清理$ Tablename vars