Php 最后插入的可能问题
我正在用PHP/MySQL开发一个小型web应用程序,作为一个课程项目 当用户创建帐户时(帐户类型必须是导师或学生),我按照以下逻辑将其插入数据库:Php 最后插入的可能问题,php,mysql,Php,Mysql,我正在用PHP/MySQL开发一个小型web应用程序,作为一个课程项目 当用户创建帐户时(帐户类型必须是导师或学生),我按照以下逻辑将其插入数据库: 注意:我通过将用户设置为超级类实现了表之间的继承,STUDENT和TUTOR都有FKs到USER_id 插入到用户中;//A行 // The following are Lines B if (type == 'TUTOR') INSERT INTO TUTOR (user_id) VALUES (lastInsertId()); els
注意:我通过将用户设置为超级类实现了表之间的继承,STUDENT和TUTOR都有FKs到USER_id
插入到用户中;//A行
// The following are Lines B
if (type == 'TUTOR')
INSERT INTO TUTOR (user_id) VALUES (lastInsertId());
else INSERT INTO STUDENT (user_id) VALUES (lastInsertId());
在一个可能有100个客户端同时注册的大型应用程序中,该逻辑是否可能无法正确执行其任务
例如,User-1(学生)正在注册,现在以id=1插入到User
中
在他被插入到STUDENT
之前,另一个用户user-2(导师)也来了,并且正在注册应用程序,他被插入到user
,id=2
现在,User-1继续执行,lastInsertId()现在是2而不是1
这会发生在大型web应用程序中吗?或者假设在a行和B行之间有一大块代码
请注意,我没有使用单例模式连接到数据库。最后一个插入id是特定于数据库连接的。保证返回当前连接发出的上一条语句的插入id。它与其他并发查询明确隔离。最后一个insert id是特定于数据库连接的。保证返回当前连接发出的上一条语句的插入id。它与其他并发查询明确隔离。最后一个insert id是特定于数据库连接的。保证返回当前连接发出的上一条语句的插入id。它与其他并发查询明确隔离。最后一个insert id是特定于数据库连接的。保证返回当前连接发出的上一条语句的插入id。它与其他并发查询明确隔离。您的代码是完全安全的。MySQL函数为不同连接返回的值之间没有混合。如文件所述: 生成的ID在服务器中按每个连接进行维护。这意味着函数返回给给定客户机的值是为影响该客户机的
AUTO\u INCREMENT
列的最新语句生成的第一个AUTO\u INCREMENT
值。此值不受其他客户端的影响,即使它们生成自己的AUTO_INCREMENT
值。此行为确保每个客户端都可以检索自己的ID,而不必关心其他客户端的活动,也不需要锁或事务
我猜您发布的伪代码是指PHP函数,它为MySQL包装了MySQL函数。您的代码是完全安全的。MySQL函数为不同连接返回的值之间没有混合。如文件所述: 生成的ID在服务器中按每个连接进行维护。这意味着函数返回给给定客户机的值是为影响该客户机的
AUTO\u INCREMENT
列的最新语句生成的第一个AUTO\u INCREMENT
值。此值不受其他客户端的影响,即使它们生成自己的AUTO_INCREMENT
值。此行为确保每个客户端都可以检索自己的ID,而不必关心其他客户端的活动,也不需要锁或事务
我猜您发布的伪代码是指PHP函数,它为MySQL包装了MySQL函数。您的代码是完全安全的。MySQL函数为不同连接返回的值之间没有混合。如文件所述: 生成的ID在服务器中按每个连接进行维护。这意味着函数返回给给定客户机的值是为影响该客户机的
AUTO\u INCREMENT
列的最新语句生成的第一个AUTO\u INCREMENT
值。此值不受其他客户端的影响,即使它们生成自己的AUTO_INCREMENT
值。此行为确保每个客户端都可以检索自己的ID,而不必关心其他客户端的活动,也不需要锁或事务
我猜您发布的伪代码是指PHP函数,它为MySQL包装了MySQL函数。您的代码是完全安全的。MySQL函数为不同连接返回的值之间没有混合。如文件所述: 生成的ID在服务器中按每个连接进行维护。这意味着函数返回给给定客户机的值是为影响该客户机的
AUTO\u INCREMENT
列的最新语句生成的第一个AUTO\u INCREMENT
值。此值不受其他客户端的影响,即使它们生成自己的AUTO_INCREMENT
值。此行为确保每个客户端都可以检索自己的ID,而不必关心其他客户端的活动,也不需要锁或事务
我猜您发布的伪代码指的是PHP函数,用于MySQL的PHP函数包装了MySQL函数。是的,您对该函数的看法是正确的。谢谢你的回答是的,关于函数你是对的。谢谢你的回答是的,关于函数你是对的。谢谢你的回答是的,关于函数你是对的。谢谢你的回答