如何在PHP中获取最后插入的行值并向其中添加1

时间:2013-07-30 06:09:29

标签: php mysql

我正在开发iOS应用,以便在用户购买许可证时为他们提供更多选择。我大多熟悉ObjC和xCode,所以我不太了解PHP。

以下是MySql表的设置:

MySql table

我正在尝试从表格中的最后一个条目获取rw_app_id。给它+1。然后将其输入数据库的新行。下面是我到目前为止构建的代码。非常感谢,我手动输入了2,500多个主菜,我已经厌倦了这样做。请帮助我保持理智。对给出的代码的解释会很棒。感谢。

$increase = stripslashes($_GET['increase']);
$email = stripslashes($_GET['email']);
$unlock = stripslashes($_GET['unlock']);
$numOf = stripslashes($_GET['numOf']);



$d = mysql_connect($host, $user, $password);
if (!$d) {
    header($header.': Could not connect: '.mysql_error());
    exit();
}


mysql_select_db($db);

//这就是我要去的地方!

$rw_app_id = LAST_ROW(?)+1;

//

$q = "INSERT INTO rw_promo_code (id, rw_app_id, code, unlock_code, uses_remaining) VALUES ('$increase', '$rw_app_id', '$email', '$unlock', '$numOf')";



$result = mysql_query($q);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}else{

echo "Entered Successfully";

}

4 个答案:

答案 0 :(得分:3)

更改行

$q = "INSERT INTO rw_promo_code (id, rw_app_id, code, unlock_code, uses_remaining) VALUES ('$increase', '$rw_app_id', '$email', '$unlock', '$numOf')";

$q = "INSERT INTO rw_promo_code (rw_app_id, code, unlock_code, uses_remaining) VALUES ('$rw_app_id', '$email', '$unlock', '$numOf')";

您不需要计算最后一个ID并向其添加1然后插入。 MySQL会为你做这件事。

注意:手动增量是危险的,因为其他人可能在您之间插入一行,您计算下一个ID并执行插入

用于插入max+1 of rw_app_id尝试此代码

$q = "INSERT INTO rw_promo_code (rw_app_id, code, unlock_code, uses_remaining) SELECT (MAX(rw_app_id)+1), '$email', '$unlock', '$numOf' FROM rw_promo_code";

答案 1 :(得分:3)

如果您想要表格中所有行的最后一行,那么这最终是MAX(id)是正确答案的时间! :)有点。

SELECT fields FROM rw_promo_codeORDER BY id DESC LIMIT 1;

$q = "SELECT MAX(id) FROM rw_promo_code  "

获取最后一行id,然后递增1

$q = "INSERT INTO rw_promo_code (id, rw_app_id, code, unlock_code, uses_remaining) VALUES ('$increase', '$rw_app_id', '$email', '$unlock', '$numOf')";

否则

$q = "INSERT INTO rw_promo_code ( rw_app_id, code, unlock_code, uses_remaining) VALUES ( '$rw_app_id', '$email', '$unlock', '$numOf')";

答案 2 :(得分:1)

您可以使用order by id

获取最后一个ID
SELECT id FROM rw_promo_code ORDER BY id DESC LIMIT 1;

答案 3 :(得分:1)

您的 id 字段是自动增量字段。所以在这种情况下,您不需要最后一个插入ID。您的查询应该是

 $q = "INSERT INTO rw_promo_code ( rw_app_id, code, unlock_code, uses_remaining) VALUES ('$rw_app_id', '$email', '$unlock', '$numOf')";