PHP在处理请求时是否一次处理一个.php文件?

时间:2016-04-09 19:41:21

标签: php

也许不是最好的话题,但我试图用一个简单的例子来解释它。 我在示例中的表是:

CREATE TABLE users_logindata (
  id INT AUTO_INCREMENT PRIMARY KEY,
  email VARCHAR(250) UNIQUE DEFAULT NULL,
  reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);


CREATE TABLE user_info(
    id INT AUTO_INCREMENT PRIMARY KEY,
    id_user INT,
    adress VARCHAR(255),
     name VARCHAR(255),
    country VARCHAR(255),
    city VARCHAR(255),
    postal_place VARCHAR(255),
    zip_code VARCHAR(255)
);

我有一个表包含用户的登录数据,另一个表包含" extra"用户可能填写的数据,如果他愿意。 但是所有这些都可以使用一个注册表单填写!

该脚本首先通过将给定数据(必需)添加到数据库来创建用户。 为了获得引用user_info表(存储额外数据)的id,我需要从&users; login_logindata'中获取id。 并在' user_info'中使用id作为参考。表

获取最后一个ID的代码:

 /* get last entry in db*/
    public function getLastEntry($tablename){

         if ($result = $this->connect()->db_connection->query("SELECT id FROM $tablename ORDER BY id DESC LIMIT 1" )) {

            while ($o = $result->fetch_object()) {
                return $o->id;
            }
        }
    }

步骤类似于:

1)将用户添加到' users_logindata'

2)从' users_logindata'

中选择最后一个ID来获取ID

3)使用步骤2中的值并将其添加到' user_info => id_user'表

然后我的问题是:如果我有很多用户同时注册,那么该ID可能会被混淆吗?因为一个用户可以在adduser查询(step1)和id的获取(step2)之间进行注册。 因为即时获取最后一个ID,实际上可能是另一个ID,因为一次注册更多?,或者PHP一次处理一个.php文件?

2 个答案:

答案 0 :(得分:1)

你的问题很多东西都是混淆的。您的Web服务器配置决定处理多少请求等。

如果您使用的是MySQL / MariaDB,那么“last insert id”功能应仅适用于当前连接。由于您在每个请求上创建了一个新连接,因此这应该是完全可以的。

  

对于LAST_INSERT_ID(),最近生成的ID在每个连接的基础上在服务器中维护。

http://dev.mysql.com/doc/refman/5.7/en/getting-unique-id.html

答案 1 :(得分:0)

我建议将这些数据存储在一个表中,因为它似乎没有多少信息可以分成多个表。

  1. 检查使用该电子邮件的用户是否已存在
  2. 如果没有注册用户
  3. 如果您决定使用两个表,则使用电子邮件地址从第一个表中检索该用户的ID
相关问题