0

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

这是MySql表的设置:

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";

}
4

4 回答 4

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";
于 2013-07-30T06:13:56.633 回答
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')";
于 2013-07-30T06:16:40.227 回答
1

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

 $q = "INSERT INTO rw_promo_code ( rw_app_id, code, unlock_code, uses_remaining) VALUES ('$rw_app_id', '$email', '$unlock', '$numOf')";
于 2013-07-30T06:41:39.467 回答
1

你可以得到最后一个IDorder by id

SELECT id FROM rw_promo_code ORDER BY id DESC LIMIT 1;
于 2013-07-30T06:15:23.213 回答