我正在开发iOS应用,以便在用户购买许可证时为他们提供更多选择。我大多熟悉ObjC和xCode,所以我不太了解PHP。
以下是MySql表的设置:
我正在尝试从表格中的最后一个条目获取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";
}
答案 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
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')";