繁体   English   中英

有关我的代码中的mysql_insert_id()应用程序的问题

[英]Question regarding mysql_insert_id() application in my code

我有一个页面,其中有一个if...else循环用于处理输入数据,提交后此页面将还原两次,即单击“继续”按钮,第二次单击“添加到购物车” ....现在在这种情况下,当单击“继续”按钮时,将执行if循环,在该循环中将数据插入到数据库中,并在刷新时显示所有输入数据,这次是另一个按钮“添加单击“添加到购物车”。.单击添加到购物车时,将执行else条件/循环部分中包含的代码。

现在,我的问题是,好像数据最初是在If部分中插入的,然后稍后执行else ,那么我可以在else部分中使用函数mysql_insert_id()来获取最后插入if部分中的数据吗?

以下是我正在谈论的代码类型:

If(Button Continue is clicked)
{
  insert query for a product table......
}
else Button Add to Cart is Clicked
{
  mysql_insert_id(); to fetch last id inserted in the above above loop/condition.. 
}

那么能否在else部分获得最后插入的ID?

如果我了解您的情况,那么不会。 mysql_insert_id (及其mySQL表亲LAST_INSERT_ID() )将返回仅对当前连接有效的最后一个插入ID。 这意味着,如果您切换到下一页,将建立新的连接,而insert_id()将不起作用。

解决方法可能是在查询后立即将插入ID放入会话变量中-然后它将在其他页面中可用。 (当用户打开多个选项卡/窗口并一次进行两次预订时,请务必小心-确保在每个预订过程中都使用某种标识符。)

这样可以获取其他部分最后插入的ID?

你不能。 您应该尝试检索insert_id的唯一位置是在执行INSERT之后。 您永远不应在会话中存储特定于交易的数据-因此,如果您有多个插入ID,并且需要在不同页面之间传递此信息,则记录应引用单个“主”记录(例如购物篮),因为该记录不会改变生命周期中,在会话中存储记录的标识符将是安全的。

C。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM