为每个用户及其 ID 创建一个表

我当前正在创建的网站存在问题,我需要为每个用户提供一个表,但它不起作用。我尝试在注册或第一次登录期间创建一个表,这也有效。我的问题是表的命名,因为我希望表具有以下名称。“user_1” “用户”是固定的,数字应该是用户的ID。它应该是这样的,表用户工作没有问题,但其他表不工作。

目前数据库:

  • 用户

  • 用户_

DB期望的内容:

  • 用户

  • 用户_1

  • 用户_2

表用户:

+----+--------------+-----------+------------------+---------------|

| id |  first name  | last name |  email           | password      |

+------------------------------------------------------------------+

|  1 |  user1       | user1     |  user1@gmail.com | password Hash||

+------------------------------------------------------------------+

|  2 |  user2       | user2     |  user2@gmail.com | passowrd Hash |

+----+--------------+-----------+------------------+---------------+

我之前的机会: 到目前为止我已经尝试过如果注册成功就创建表。这是我可以创建表的错误,但它以“user_”名称创建了它。“id”被简单地省略,所以我可以创建一个表。


使用第二种方法,我尝试在注册期间在表中存储“False”值,并在登录期间检查该值是否为“False”,如果是,则将该值更改为“True”并创建表。但在这里我遇到了与第一次尝试相同的问题,即没有给我 ID。


我的代码:registration.php:


//Keine Fehler, wir können den Nutzer registrieren

if(!$error) {    

    $passwort_hash = password_hash($passwort, PASSWORD_DEFAULT);

    

    $statement = $pdo->prepare("INSERT INTO users (email, passwort, vorname, nachname) VALUES (:email, :passwort, :vorname, :nachname)");

    $result = $statement->execute(array('email' => $email, 'passwort' => $passwort_hash, 'vorname' => $vorname, 'nachname' => $nachname));

    

    if($result) {

            $pdo = new PDO('mysql:host=localhost;dbname=fitnessstats', 'root', '');


            if(isset($_GET['login'])) {

            $email = $_POST['email'];

            $passwort = $_POST['passwort'];


            $statement = $pdo->prepare("SELECT * FROM users WHERE email = :email");

            $result = $statement->execute(array('email' => $email));

            $user = $statement->fetch();

   

有只小跳蛙
浏览 117回答 2
2回答

繁花如伊

回顾一下:回想起来,上面的问题没有多大意义,因为通常你会在表之间创建关系,如果将来遇到这个问题,请在这里寻找合适的解决方案。

猛跑小猪

我使用 PDO,有一个名为 lastInsertId() 的函数,当您在用户数据库中存储新用户时可以使用它例如: $id = pdo->lastInsertId();然后在表名中添加这个 $id 变量
打开App,查看更多内容
随时随地看视频慕课网APP