我有一个表单(X)将数据插入mysql表(A),然后重定向到另一个表单(Y),它将数据插入另一个表(B)但我需要使用表A的最后一个插入行。
我知道我可以使用mysqli_insert_id
函数来获取它,但是当我提交到表单Y并重新显示表单时,Y会因为$ID
值为空而混乱。我试图通过这样做来输入转换id的值。
$id = (int)mysqli_insert_id($link);
但这根本没有帮助。
答案 0 :(得分:2)
您必须通过Cookie,会话或隐藏输入在表单之间保留mysqli_insert_id的结果。
由于mysqli_insert_id只会返回它被调用的连接实例而不是整个数据库,当你转移到另一个表单时,原始连接将关闭,一个新的连接打开,没有插入任何id(因此,空值)。
我个人会参加会议,但这完全取决于您的安全要求。
答案 1 :(得分:1)
您可以在处理表单X时使用会话来存储值,然后可以通过表单Y来处理。
X:
session_start();
$_SESSION['insert_id'] = 42;
Y:
session_start();
$insert_id = $_SESSION['insert_id']; // 42
有关如何在完成会话后销毁会话的示例,请参阅the manual。