选择表中所选行的最后插入 ID


Select last inserted id of selected rows in a table

有什么方法可以从选定的行中选择最后插入的id。(不是来自表中的所有行)下面是我写的代码。我想选择一个具有最高周属性值的。这也是该选定集的最后一个插入 id。

$get_payment_details = 'SELECT * FROM payment WHERE m_id="' . $mselcted_memberI . '" AND app_id= "' . $aprvd_appid . '"';
$get_payment = mysql_query($get_payment_details);
$get_pay_result = mysql_fetch_assoc($get_payment);
$get_pay_count = mysql_num_rows($get_payment);
if ($get_pay_count < 1) {
    $query1 = "INSERT INTO payment(date,m_id,app_id,week,capital_topay,interest_to_pay,received,advanced,remain_capital,remain_interest)
               VALUES('$date1',"."'".$mselcted_memberI."',"."'".$aprvd_appid."',"."'".$week1."',"."'".$aprvd_amount."',"."'".$ttl_interest."',"."'".$received1."',"."'".$advanced1."',"."'".$aprvd_amount."',"."'".$ttl_interest."')";
    $login_set = mysql_query($query1,$connection);
    confirm_query($login_set);
    echo $week1;
} else if ($get_pay_count >0){
}

如果您使用的是 PHP 5.5 之前的 ID,则可以使用 mysql_insert_id() 来检索最后插入的 id。从文档中:

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d'n", mysql_insert_id());
?>

但请注意,从 PHP 5.5.0 开始,此函数已弃用。规范推荐的解决方案如下:

  • MySQLi: use mysqli_insert_id()
  • PDO_MySQL:使用 PDO::lastInsertId()

我不确定你到底是什么意思,但要从 sql 获取最后一个自动生成的 id,请使用

$theID = mysqli_insert_id();

以下是更多信息:

http://php.net/manual/en/mysqli.insert-id.php

您需要:

SELECT id FROM payment WHERE yourConditions ORDER BY week DESC LIMIT 0,1;