【问题标题】:variable name into CREATE TABLE IF NOT EXISTS on php变量名到 CREATE TABLE IF NOT EXISTS on php
【发布时间】:2014-06-02 02:59:55
【问题描述】:

我在一个变量上有一个表名,但是当我将它放在 CREATE TABLE IF NOT EXISTS 命令中时它不起作用,或者它创建 $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);

【问题讨论】:

  • 因为你用'单引号括住了那个变量,它应该被连接起来或者使用双引号
  • 谢谢,我没有意识到这个细节

标签: php mysql create-table


【解决方案1】:

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

"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";

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double

您也可以随时将其连接起来:

"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";

【讨论】:

    猜你喜欢
    • 2015-05-16
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2016-09-16
    • 2015-02-24
    相关资源
    最近更新 更多