Php 将数据插入表中,并立即选择行的ID号
我有一个名为“买家”的MYSQL表。我获取表单数据并将其插入到名为insert.php的页面上的表中 现在,除了表单字段的列名,表中还有一个自动递增的ID列。我想要的是;一旦我将表单数据发送到表中,我想执行一些SQL来获取我刚刚插入数据的行的ID号 例如,我有SQL:Php 将数据插入表中,并立即选择行的ID号,php,mysql,sql,Php,Mysql,Sql,我有一个名为“买家”的MYSQL表。我获取表单数据并将其插入到名为insert.php的页面上的表中 现在,除了表单字段的列名,表中还有一个自动递增的ID列。我想要的是;一旦我将表单数据发送到表中,我想执行一些SQL来获取我刚刚插入数据的行的ID号 例如,我有SQL: INSERT INTO Buyers (name, email, job) VALUES ('$_POST[name]', '$_POST[email]', '$_POST[job]'); 这将在“买家”表中创建一行,其中包含来
INSERT INTO Buyers (name, email, job) VALUES ('$_POST[name]', '$_POST[email]', '$_POST[job]');
这将在“买家”表中创建一行,其中包含来自表单字段“姓名”、“电子邮件”和“工作”的数据
此行将具有自动递增生成的ID号
那么,我怎样才能选择准确的身份证号码呢?有没有办法选择表中最近的行,因为这是包含我想要的ID号的行
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;
此谜题的最后一部分留给读者练习。使用mysql\u insert\u id()检索id。更多详细信息-
您正在使用什么
mysqli.*
或PDO
?因为两者都有内置函数,如last\u inserted\u id
,以便在插入后立即获取最新的id。其他方面从买家订单中选择id按id DESC LIMIT 1
我会尝试按DESC下单的方法,我会看看它是否有效…谢谢,它非常有效@J.布鲁克谁的解决方案适合你?@VamsiAbbineni谢谢。当你发布答案和评论时,请保持这种屈膝礼。我希望你明白我想说的话。感谢如果同时从不同线程插入多条记录,则此函数将不起作用。请注意,此函数已弃用。正确的解决方案是mysqli_insert_id()或PDO::lastInsertId()。谢谢@Anant:)
,也谢谢你“@VamsiAbbineni谢谢。在你发布答案和评论时,请保持这种屈膝礼。我希望你明白我想说的。谢谢–Anant”
<?php
mysqli_query($con,"INSERT INTO Buyers (name, email, job) VALUES ('$_POST[name]', '$_POST[email]', '$_POST[job]')");
$last_id = mysqli_insert_id($con);
?>
<?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();
?>
<?php
mysql_query("INSERT INTO Buyers (name, email, job) VALUES ('$_POST[name]', '$_POST[email]', '$_POST[job]')");
$last_id = mysql_insert_id();
?>