如果php上不存在变量名,则将其输入到CREATE TABLE中

如果php上不存在变量名,则将其输入到CREATE TABLE中,php,mysql,create-table,Php,Mysql,Create Table,我在一个变量上有一个表名,但当我把它放在CREATETABLE IF NOT EXISTS命令中或者它创建了名为table的$table时,它就不起作用了 以下是我的代码的相关部分: $con=mysqli_connect("localhost","user","pwd","DB"); $usuario=$_SESSION["uid"]; $tabla=$usuario; $tabla.='_partidos'; echo $tabla; // shows the

我在一个变量上有一个表名,但当我把它放在CREATETABLE IF NOT EXISTS命令中或者它创建了名为table的$table时,它就不起作用了

以下是我的代码的相关部分:

   $con=mysqli_connect("localhost","user","pwd","DB");
   $usuario=$_SESSION["uid"];
   $tabla=$usuario;
   $tabla.='_partidos';
   echo $tabla; // shows the correct name of the table
   // Check connection
   if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
   //crear tabla
   $create_table =
   'CREATE TABLE IF NOT EXISTS $tabla (
   `ID` int(2) NOT NULL AUTO_INCREMENT,
    `Grupo` varchar(1),
   `Local` char(30),
   PRIMARY KEY (`ID`)
    )
    COLLATE=utf8_spanish_ci';


   $con->query($create_table);

将不分析单引号字符串中的变量。但是,它将被解析为双引号字符串:

"CREATE TABLE IF NOT EXISTS $tabla (
`ID` int(2) NOT NULL AUTO_INCREMENT,
`Grupo` varchar(1),
`Local` char(30),
PRIMARY KEY (`ID`)
)
COLLATE=utf8_spanish_ci";

或者,您可以始终将其连接起来:

"CREATE TABLE IF NOT EXISTS " . $tabla . " (
`ID` int(2) NOT NULL AUTO_INCREMENT,
`Grupo` varchar(1),
`Local` char(30),
PRIMARY KEY (`ID`)
)
COLLATE=utf8_spanish_ci";

因为您用
单引号将该变量括起来,所以应该将其串联或使用双引号