1

我已经创建了我想要的表格以及我想要的表格。我刚刚意识到我想在 session_destroy() 上销毁它。

我知道我可以很容易地做到这一点CREATE TEMPORARY TABLE。当我通过添加表来编辑以下代码时,TEMPORARY没有创建。它在TEMPORARY不存在时创建。

$sep = '';

$sql = "CREATE TABLE `".$unique_id."`(";

$sql.= PHP_EOL;

$sql.= "`Name` VARCHAR(255) NOT NULL,".$sep;

foreach ($year_range as $year) {

  //ADD SEPERATOR BETWEEN LINES
  if ($year != end($year_range)) {
      $sep = ',';
  } else {
      $sep = '';
  }

  $sql.= "`".$year."` VARCHAR(255) NOT NULL".$sep;
}
$sql.= PHP_EOL;
$sql.=')';

我已经添加了TEMPORARY,它没有注册也没有创建表。谁能阐明我可能做错了什么?谢谢你。

4

1 回答 1

2

而不是像这样动态创建表,您应该研究更好地使用关系数据库

我认为您只需要 2 个具有一对多关系的表

像这样的设置应该可以工作:

Table 1: User - basically a replacement for multiple dynamic tables. Stores an identifer for the user of the site.
Columns: unique_id (auto increment) | user (user identifier)

Table 2: years - contains a row for each year
Columns: unique_id (auto increment) | users_identifier (unique_id from users table) | year | stages_match

这利用了一种叫做“外键”的东西。基本上,它的意思是“这一行属于另一个表中的 unique_id”

您可以像现在删除表一样删除数据;当用户结束他们的会话时,删除用户表中属于该用户的所有行。如果您设置外键权限,这也会从年表中删除该用户的所有行。

于 2020-08-12T19:49:20.817 回答