Php SQL创建表语法错误

Php SQL创建表语法错误,php,mysql,database,Php,Mysql,Database,我试图创建500个表,所有这些表都命名为[1-500],并且只有一个时间戳和一个对应的值totalviews <?php $i = 1; while ($i<500) { $con=mysqli_connect("localhost","user","pass","database"); if (mysqli_connect_errno($con)) { echo "Failed to connect to MySQL: " . mysqli_

我试图创建500个表,所有这些表都命名为[1-500],并且只有一个时间戳和一个对应的值totalviews

<?php
$i = 1;
while ($i<500) {
    $con=mysqli_connect("localhost","user","pass","database");
    if (mysqli_connect_errno($con))
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    $sql = "CREATE TABLE \"".$i."\" ( 
    'TheTime' INT UNSIGNED PRIMARY KEY, 
    'TotalViews' INT UNSIGNED
    )";
    if (!mysqli_query($con, $sql))
      {
      die('Error: ' . mysqli_error($con));
      };
    echo "1 table created added: ".$i;
    mysqli_close($con);
$i++;
    }
?>
但是我得到了一个错误:错误:您的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“1”时间“INT UNSIGNED”主键、“TotalViews”INT UNSIGNED”附近使用的正确语法


我做错了什么?我应该以不同的方式完成这一点吗?

列名不能用单引号括起来,您可以使用反勾号

所以

应该是

`TheTime` 


表名:100,比如说,应该是反勾号

我是pendatic,把所有的名字都放在后面,但除了保留的单词和不寻常的名字之外,它们不是必需的

下面是测试代码:

<?php
$i = 1;
while ($i<5) {
    $con=mysqli_connect("localhost","test","test","testmysql");
    if (mysqli_connect_errno($con))
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    $sql = 'CREATE TABLE `'.$i.'` ('
    .'`TheTime` INT UNSIGNED PRIMARY KEY,'
    .'`TotalViews` INT UNSIGNED)';
    if (!mysqli_query($con, $sql))
      {
      die('Error: ' . mysqli_error($con));
      };
    echo "1 table created added: ".$i;
    mysqli_close($con);
$i++;
    }
?>

首先,您应该在开始while循环之前移动连接。 对于DB名称,请使用“代替”,对于字段,请使用“代替”符号:

<?php
$con = mysqli_connect("localhost", "user", "pass", "database");
if (mysqli_connect_errno($con)) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();

    die();
}

$i = 1;    
while ($i < 500) {
    $sql = "CREATE TABLE `" . $i . "` (
    `TheTime` INT UNSIGNED PRIMARY KEY,
    `TotalViews` INT UNSIGNED
    )";

    if (!mysqli_query($con, $sql)) {
        die('Error: ' . mysqli_error($con));
    }

    echo "1 table created added: " . $i;
    $i++;
}

mysqli_close($con);

PS:我建议您对mysqli使用面向对象的接口,它更简单。详细信息:

谢谢,但我现在仍然得到错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1hmm行使用接近“1 TheTime INT UNSIGNED PRIMARY KEY,TotalViews INT UNSIGNED”的正确语法。表名为1,2…等,因此您需要将它们与列名一样包含在backtics中。不要将整数用作列/表标识符。另外,创建500张完全相同的表格听起来是一个非常糟糕和愚蠢的想法。不知道为什么答案被否决了?不过,谢谢你接受。
`TotalViews` 
<?php
$i = 1;
while ($i<5) {
    $con=mysqli_connect("localhost","test","test","testmysql");
    if (mysqli_connect_errno($con))
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    $sql = 'CREATE TABLE `'.$i.'` ('
    .'`TheTime` INT UNSIGNED PRIMARY KEY,'
    .'`TotalViews` INT UNSIGNED)';
    if (!mysqli_query($con, $sql))
      {
      die('Error: ' . mysqli_error($con));
      };
    echo "1 table created added: ".$i;
    mysqli_close($con);
$i++;
    }
?>
<?php
$con = mysqli_connect("localhost", "user", "pass", "database");
if (mysqli_connect_errno($con)) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();

    die();
}

$i = 1;    
while ($i < 500) {
    $sql = "CREATE TABLE `" . $i . "` (
    `TheTime` INT UNSIGNED PRIMARY KEY,
    `TotalViews` INT UNSIGNED
    )";

    if (!mysqli_query($con, $sql)) {
        die('Error: ' . mysqli_error($con));
    }

    echo "1 table created added: " . $i;
    $i++;
}

mysqli_close($con);