【发布时间】:2015-03-20 18:33:16
【问题描述】:
我的数据库中有一个“用户”表,当有人创建一个新帐户时,我想要,而不是对 id 进行自动递增,而是获取最后插入的 id 的值,将其加 1,然后插入它与其余的创建用户数据。我现有的代码是:
<?php
mysql_connect("localhost","username","password");
mysql_select_db("db");
$fname = $_POST['fname'];
// ... get all the other info from create user form
$query = "INSERT INTO Users ('fname','lname','email','username','password')
VALUES
('$fname','$lname','$email','$username','password')"
我想要做的是从表中最后一个用户(行)的用户表中获取“id”,然后给它加 1,代码如下:
$query = "INSERT INTO Users ('id','fname','lname','email','username','password')
VALUES
('$id','$fname','$lname','$email','$username','$password')";
我该怎么做呢?
编辑:感谢大家对我的关心,让我想起了 SQL 注入。我提供的代码是我正在做的一个最小示例。我不想把所有这些都放在我的例子中。不过还是谢谢
【问题讨论】:
-
小心 SQL 注入。在插入 SQL 之前,您应该从 POST 中转义输入
-
你为什么使用phps mysql api?它已弃用...如果您使用 mysqli 或 pdo,您可以使用他们的 api 中支持的 last_insert_id
-
是的,我知道@Raptor。我提供的代码不准确。这只是我所做的事情的粗略草图。感谢您的意见
-
+1d 值有什么用?听起来不对