DB的主键作为PHP头信息

时间:2013-06-07 17:36:31

标签: php mysql database

我已经在application.php创建了一个注册表单,在提交时会对其进行处理并使用submit.php存储内容,并且我想使用名为message的参数重定向到thanks.php值等于最近插入的行的primay键。例如,它应该将我的第100个申请人返回到页面,

www.mydomain.com/thanks.php?message=100

其中100是主键(AI)。

换句话说,我想打印表的主键作为用户的引用ID ..我试过

header("location: thanks.php?message=".$id);

header("location: thanks.php?message=".$_POST['id']);

两者都不适合我。

请帮助我们!

编辑:

require("admin/sources/connection.php");

$id = mysql_insert_id();

// Other variables are declared here

$sql = "my_INSERT_query_goes_here";

$result = $conn->query($sql);

if($result) {

    header("location: thanks.php?message=".$id);
}

这是我的submit.php代码

2 个答案:

答案 0 :(得分:1)

执行顺序错误 - 简单修复

您首先分配$ id,然后运行查询。

扭转它们以使其发挥作用。

不使用自动增量?

我在评论的查询中看到,您手动传递了要输入的ID。您是否意识到mysql_insert_id()不会返回您调用的sql列" id",但是您设置了自动增量的列?这是表中的一行,可以自动获取递增的数字而无需手动输入。

答案 1 :(得分:0)

情侣问题......看起来你正在将mysql_方法与mysqli混合,并且你的执行顺序错误。

如果数据库表是自动递增的,则无需在查询中传递ID。通过调用$id = mysql_insert_id();并在查询中使用id,您将传入0作为使用下一个自动增量ID的id。

insert_id之后获取$conn->query($sql);将返回使用的插入ID。

回显一些变量,看看你在mysql_insert_id();之前和之后得到的值。

但是,如果你正在使用$conn->query(),那么你就不会使用标准的mysql_函数。

试试这个:

require "admin/sources/connection.php";

// Other variables are declared here

$sql = "my_INSERT_query_goes_here";

$result = $conn->query($sql);

if($result) {
    $id = $conn->insert_id;
    header("location: thanks.php?message=".$id);
}