猿问

将表更改为临时表 - php/mysqli

我已经创建了我想要的表格以及我想要的方式。我刚刚意识到我希望它在 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,它没有注册也没有创建表。任何人都可以阐明我可能做错了什么吗?谢谢。


暮色呼如
浏览 72回答 1
1回答

德玛西亚99

您应该研究关系数据库的更好用途,而不是像这样动态创建表。我认为你只需要 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 yearColumns: unique_id (auto increment) | users_identifier (unique_id from users table) | year | stages_match这利用了一种称为“外键”的东西。基本上,这意味着“该行属于另一个表中的 unique_id”您可以像现在删除表一样删除数据;当用户结束会话时,删除用户表中属于该用户的所有行。如果您正确设置外键,这也会从 Years 表中删除该用户的所有行。
随时随地看视频慕课网APP
我要回答