当你访问我的网站时,我有一个带有按钮的主页:开始enquete。 单击该按钮时,您将看到enquete。
与此同时,当您点击该按钮时。已在数据库中插入ID。
的index.php:
<form method="POST">
<input type="hidden" name="x">
<input type="submit" value="Go to enquete">
</form>
<?php
if(isset($_POST['x'])){
$test = $database->insert_user_id();
//header('Location: enquete/page1.php');
}
功能:
function insert_user_id(){
$sql = "INSERT INTO user (user_id) VALUES (DEFAULT)";
$sth = $this->pdo->prepare($sql);
$sth->execute();
return $this->pdo->('user_id');
}
返回$ this-&gt; pdo-&gt;('user_id');是我正在测试的东西! 现在我的问题是。如何从表用户返回最后插入的id 我需要在下一页上显示它。 (见//标题)。
我不能使用其他查询执行此操作,例如:SELECT MAX ID
或GetLastInsertId
这个因为,当其他人也开始入伍时,他会突然有另一个身份。
我如何让这个人保持正确的身份。
答案 0 :(得分:1)
$这 - &GT; pdo-&GT; lastInsertId();
答案 1 :(得分:1)
试试这个。手动PDO::lastInsertId
$stmt = $db->prepare("...");
$stmt->execute();
$id = $db->lastInsertId();
答案 2 :(得分:0)
您可以通过Get方法轻松完成此操作。
但你也可以通过稍微调整你的代码来做到这一点。
<form method="POST">
<input type="hidden" name="x">
<input type="submit" value="Go to enquete">
</form>
<?php
if(isset($_POST['x'])){
$id = $_POST['X'];
$test = $database->insert_user_id($id);
//header('Location: enquete/page1.php');
}
并将你的功能改为
function insert_user_id($id){
$sql = "INSERT INTO user (user_id) VALUES ('".$id. "')";
$sth = $this->pdo->prepare($sql);
$sth->execute();
return $this->pdo->('user_id');
}
编辑:我失败了。
答案 3 :(得分:0)
如果我理解正确,你想要插入数据库的行的id,并将用户重定向到那个?
的index.php
if(isset($_POST['x'])){
$enqueteId = $database->insert_user_id();
header('Location: enquete/page1.php?id=' . $enqueteId);
}
功能:
function insert_user_id(){
$sql = "INSERT INTO user (user_id) VALUES (DEFAULT)";
$sth = $this->pdo->prepare($sql);
$sth->execute();
return $this->pdo->lastInsertId();
}
答案 4 :(得分:-1)
你可以使用PHP mysqli_insert_id()函数返回表的最后插入的id
欲了解更多信息,请浏览以下链接