我有一个名为'买家'的MYSQL表。我正在获取表单数据并将其插入到名为insert.php的页面中的表中。
现在,除了表单字段的列名,我在表中有一个自动增量ID列。我想要的是;一旦我将表单数据发送到表,我想执行一些SQL来获取我刚插入数据的行的ID号。
例如,我有SQL:
INSERT INTO Buyers (name, email, job) VALUES ('$_POST[name]', '$_POST[email]', '$_POST[job]');
这将在“买方”表格中创建一行,其中包含表单字段“name”,“email”和“job”中的数据。
此行将包含由自动增量生成的ID号。
那么,我如何选择那个确切的身份证号码呢?有没有办法选择表中最近的行,因为那是包含我想要的ID号的行?
答案 0 :(得分:3)
Mysqli :mysqli_insert_id()
<?php
mysqli_query($con,"INSERT INTO Buyers (name, email, job) VALUES ('$_POST[name]', '$_POST[email]', '$_POST[job]')");
$last_id = mysqli_insert_id($con);
?>
PDO : PDO::lastInsertId()
<?php
$stmt = $con->prepare("INSERT INTO Buyers (name, email, job) VALUES (?,?,?)");
$stmt->bind_param("sss", $_POST['name'], $_POST['email'], $_POST['job']);
$stmt->execute();
$last_id = $con->lastInsertId();
?>
假设$con
为连接。
Mysql :mysql_insert_id()
<?php
mysql_query("INSERT INTO Buyers (name, email, job) VALUES ('$_POST[name]', '$_POST[email]', '$_POST[job]')");
$last_id = mysql_insert_id();
?>
答案 1 :(得分:0)
SELECT x.*
FROM messages x
JOIN
( SELECT from_id, MAX(time_sent) time_sent GROUP BY from_id ) y
ON y.from_id = x.from_id
AND y.time_sent = x.time_sent;
这个谜题的最后一部分留给读者练习。
答案 2 :(得分:0)
使用mysql_insert_id()来检索ID。更多详情 - http://php.net/manual/en/function.mysql-insert-id.php