Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数据插入表中,并立即选择行的ID号_Php_Mysql_Sql - Fatal编程技术网

Php 将数据插入表中,并立即选择行的ID号

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]'); 这将在“买家”表中创建一行,其中包含来

我有一个名为“买家”的MYSQL表。我获取表单数据并将其插入到名为insert.php的页面上的表中

现在,除了表单字段的列名,表中还有一个自动递增的ID列。我想要的是;一旦我将表单数据发送到表中,我想执行一些SQL来获取我刚刚插入数据的行的ID号

例如,我有SQL:

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(); 
?>