我正在做一个计算项目,它要求我使用id(这是一个表中的主键)作为另一个表的辅助键。我想使用会话来使用像这样的命令来跟踪变量
$id=$_SESSION['id'];
但是我现在遇到从表中获取id的问题,它是主键。这是我正在使用的mysql语句。
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);}
$sql='INSERT INTO user(email,pass) VALUES ("'.$email.'","'.$pass.'")';
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$sql='SELECT id FROM user WHERE user(email)="'.$email'"'
我已经做了一些寻找,但没有找到任何如何做到这一点的例子。信息正在发送到数据库并且正在生成id,一旦完成,我将添加验证。但是,我无法从数据库中检索特定的ID。还有一个我必须使用的特定变量(如$ result)或者我在查询完成后只执行$ id = $ sql?
答案 0 :(得分:2)
mysqli提供了一种使用名为insert_id
的连接属性从上一次插入中获取主键的方法,而不是运行另一个查询
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO user(email,pass) VALUES('$email','$pass'");
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
// get the id
$lastId = $conn->insert_id;
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
答案 1 :(得分:0)
试试这个:
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);}
$sql='INSERT INTO user(email,pass) VALUES ("'.$email.'","'.$pass.'")';
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$lastId = mysqli_insert_id($con);