无法在PHP中使用查询变量创建SQL表作为表名

Bla*_*ado 0 php mysql sql database create-table

我在PHP中传递一个查询变量.我想把它作为表名,但我知道可能存在SQL语法错误.当我打印语句时,传递变量意味着它可以工作,但是数据库根本就没有创建.

这是我创建数据库的代码:

$DBName = "database_name";  
$sql = "CREATE TABLE '$DBName'.'$login' (  
    ClientID int NOT NULL AUTO_INCREMENT,   
    AgentClients varchar(15),  
    ClientTotal int  
    )";  
mysql_query($sql,$link);
where `$login = $_POST['login'];
Run Code Online (Sandbox Code Playgroud)

此外,我现在并不担心安全漏洞,所以不要担心.

任何见解将不胜感激.

Jvd*_*erg 6

您必须为表名使用反引号,而不是引号:

$sql = "CREATE TABLE `$DBName`.`$login` (  
  ClientID int NOT NULL AUTO_INCREMENT,   
  AgentClients varchar(15),  
  ClientTotal int,
  PRIMARY KEY (`ClientID`) 
)";
Run Code Online (Sandbox Code Playgroud)

  • 或者完全省略它们并且不使用后退. (2认同)
  • 他还使用了`AUTO_INCREMENT`而没有定义键.那会失败,对吗? (2认同)