Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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中获取最后插入的行值并向其中添加1_Php_Mysql - Fatal编程技术网

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

如何在PHP中获取最后插入的行值并向其中添加1,php,mysql,Php,Mysql,我正在开发一个iOS应用程序,让用户在购买许可证时有更多的选择。我主要熟悉ObjC和xCode,所以对PHP了解不多 以下是MySql表的设置: 我正在尝试从表中的最后一个条目中获取rw_app_id&+1。然后将其输入数据库的新行。下面是我迄今为止构建的代码。非常感谢您的帮助,我已经手动向这个数据库输入了2500多个主菜,我已经厌倦了这样做。请帮我保持清醒。对给出的代码进行解释会很好。谢谢 $increase = stripslashes($_GET['increase']); $email

我正在开发一个iOS应用程序,让用户在购买许可证时有更多的选择。我主要熟悉ObjC和xCode,所以对PHP了解不多

以下是MySql表的设置:

我正在尝试从表中的最后一个条目中获取rw_app_id&+1。然后将其输入数据库的新行。下面是我迄今为止构建的代码。非常感谢您的帮助,我已经手动向这个数据库输入了2500多个主菜,我已经厌倦了这样做。请帮我保持清醒。对给出的代码进行解释会很好。谢谢

$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')";

您不需要计算最后一个id并向其添加1,然后插入。MySQL将为您做到这一点

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

要插入最多+1个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";
您可以通过“按id排序”获取最后一个id

如果您想要表中所有行的最后一行,那么这就是MAXid是正确答案的最后时刻了!:有点

SELECT fields FROM rw_promo_codeORDER BY id DESC LIMIT 1;

获取最后一行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')";
否则

您的id字段是一个自动递增字段。因此,在这种情况下,您不需要最后一个insert id

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

你为什么需要这个?因为Mysql将在插入时自动执行此操作,只需将id列更改为自动增量,而不插入它。编辑:它已经自动递增了@bansi:在映像中,id已递增从rw_promo_Code选择MAXid我无法在rw_app_id上添加自动递增选项:表定义不正确;只能有一个自动列,并且必须将其定义为键您所做的只是删除id?这已经是自动递增的。我需要增加rw_app_id。这是我要找的,max+1,但似乎我误解了表和我的iOS应用。我实际上需要增加id。你能在评论中给我看一下相同的方法,但是增加id。很抱歉给你添麻烦。我会在尝试后接受。我发布的最后一个代码会增加id和rw_app_id。id增量由MySQL自动处理,因为它被声明为自动增量。在查询中,MAXrw_app_id+1递增rw_app_id列。注意:我已经使用SELECT来插入数据。好的,现在我明白了为什么您删除了id。没有它,它会自动递增。我已经一个接一个地更新这个号码好几个月了这无疑帮助我理解了select。非常感谢。
SELECT fields FROM rw_promo_codeORDER BY id DESC LIMIT 1;
$q = "SELECT MAX(id) FROM rw_promo_code  "
$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')";
 $q = "INSERT INTO rw_promo_code ( rw_app_id, code, unlock_code, uses_remaining) VALUES ('$rw_app_id', '$email', '$unlock', '$numOf')";