2

我正在创建一个人事招聘网站,但在将新数据添加到上一页创建的记录时遇到问题。

为了便于使用,我将表格分成了多个步骤(每个步骤都在一个新页面上),其中第 1 步在候选人数据库表中创建记录并插入候选人的个人详细信息(姓名、姓氏、联系方式、性别等)并将用户发送到下一页(步骤 2),其中可以上传个人资料图片,并将图像的路径插入到新创建记录的字段中。

问题在于我似乎无法获取调用相关记录的记录 ID 的代码。我想过使用 mysql_insert_id 但问题是双重的。首先,我不确定我是否知道如何正确使用它,并且在这方面的多次谷歌搜索让我一点也不聪明。其次,由于公司将在全国拥有多个分支机构,因此有可能两个用户同时添加候选人,而用户 A 最终可能会将照片添加到用户 B 创建的记录中。

我曾尝试使用 $_POST 来获取记录 ID,但是一旦将数据插入表中,数据似乎并没有将数据传递到下一页。

我对 PHP 并不完全陌生,但这不是我以前做过的事情,因为我曾经有一个朋友会处理这种事情,但不幸的是,他几个月前去世了,所以我不得不学习如何去做我一直这样下去,但收效甚微。

我希望我对我的问题足够清楚,因为我有点茫然。

任何帮助将不胜感激。

4

3 回答 3

1

最好使用 php PDO 。在那里,有一个函数可以获取插入行的 ID(http://us3.php.net/manual/en/pdo.lastinsertid.php)。当你运行插入代码时,在它之后运行它,它会给你刚刚插入的行的 ID。现在,将该 ID 附加到用户的链接或会话变量(或任何其他用户特定的),您将能够轻松跟踪每个人将能够编辑的最后一行。

于 2012-06-24T01:55:57.537 回答
0

首先,我将使用 PDO(或 mysqli)插入已弃用的 mysql_* 扩展。

使用 PDO,在执行语句后,您可以使用两个函数来获取所需的 ID:

$stmt->execute($values);     // $stmt contains the prepared statement

$return_code = $stmt->rowCount();
// $return_code = 1 : new record
// $return_code = 2 : updated record

if ($return_code == 1)
{
    $ID_YOU_NEED = $db->lastInsertId();    // $db is the database connection
}

顺便说一句,我之所以使用,rowCount()是因为我通常ON DUPLICATE KEY UPDATE在大多数插入查询中使用,您可以跳过该步骤。

然后我会将 ID 存储在会话中或将其添加为下一个表单的隐藏字段

顺便说一句,根据要求,在所有需要的信息都进来之前,我不会在数据库中存储任何东西。

于 2012-06-24T01:57:30.497 回答
0

第一的,

在将记录插入数据库的页面中,您需要获取新创建记录的 id。使用mysqli::insert-id还有其他方法可以做到。

第二,

将记录 id 存储在用户的会话中,并在后续页面中使用它来更新记录。出于安全原因,将 id 存储在会话中很重要,而不是作为 url GET 值或“隐藏”字段。

于 2012-06-24T01:59:36.567 回答