我正在尝试创建一个用户输入广告数据的页面,并在获取输入后创建一个可以存储数据的表。正确传递的数据和始终确保生成的表名的方法将是唯一的。
但是我无法执行查询并且不知道为什么它不起作用。
我是初学者,因此任何建议都会非常感激。
我的代码如下:
$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';}
?>

答案 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