您好我有将数据插入一个MySQL表(A)形式(X)和比重定向到另一形式(Y),这将数据插入到另一个表(B),但我需要使用表A的最后插入的行。
我知道我可以从使用mysqli_insert_id
函数得到它,但是当我提交表单Y并重新显示表单Y时,由于$ID
的值已被清零,所以已经搞乱了。我试图通过这样做来输入id的值。
$id = (int)mysqli_insert_id($link);
但这根本没有帮助。
您好我有将数据插入一个MySQL表(A)形式(X)和比重定向到另一形式(Y),这将数据插入到另一个表(B),但我需要使用表A的最后插入的行。
我知道我可以从使用mysqli_insert_id
函数得到它,但是当我提交表单Y并重新显示表单Y时,由于$ID
的值已被清零,所以已经搞乱了。我试图通过这样做来输入id的值。
$id = (int)mysqli_insert_id($link);
但这根本没有帮助。
你可以使用会话来存储,而你正在处理的形式X的值,然后可以通过形式Y.拾起
X:
session_start();
$_SESSION['insert_id'] = 42;
Y:
session_start();
$insert_id = $_SESSION['insert_id']; // 42
请参阅the manual了解如何在完成该操作后销毁会话的示例。
你必须从形式之间mysqli_insert_id坚持的结果,无论是通过cookie,会话或隐藏的投入。
由于mysqli_insert_id只会返回它所调用的连接实例,而不是整个数据库,因此当您切换到另一个表单时,原始连接将关闭,并打开一个新连接,该连接尚未插入任何标识(因此为空值)。
我会亲自去与会话,但是这一切都取决于您的安全要求。
以及我的安全不是一个大问题,这是对库存的要求非常简单的内部形式。它的所有一个控制器索引类只包含基于3个提交值的表单。我认为只有一个数据库连接是由索引类创建的,因为我把连接信息放在一个单独的文件中,并且对它做了include_once'db.php'。我是新来的PHP,并没有学习cookie或会话尚未....... – cferbs 2010-09-30 21:39:16
谢谢我会看看会议。 – cferbs 2010-09-30 21:45:09
如果有多个表单提交,则会有多个连接。虽然你通过相同的细节连接,但它不是同一个连接实例,就像两个相同的巧克力棒。如果你吃一个,那么第二个可能是同一个巧克力棒类型,但不是完全相同的巧克力棒(第一个已经消失,从未被检索到)。 – Psytronic 2010-09-30 21:46:23
谢谢,我马上去会议 – cferbs 2010-09-30 21:45:37