2

我正在编写学校经理脚本。我不知道如何插入订阅的自定义唯一 ID...

在显示他/她从数据库中的完整信息时,我只是使用这个函数来显示它的唯一订阅 ID:

$year = date('Y');
$ID = substr($student->dateNaissance,8,10).$student->id_etudiant."/".$year;

该功能由三件事组合而成:

  • 出生年份的最后 2 位数字(例如:01/01/1981.. 我只取这个 -->81 使用 substr 函数)
  • 数据库表中的行 ID(例如:50)。
  • 以及订阅年份(例如:2013)

所有给我的,例如,结果 8150/2013

我想要的是在将学生数据插入数据库时​​,我也希望插入这个唯一的 ID..

这里的问题是我不知道如何获取一行的最后一个 id !

是的,我尝试插入学生数据,然后使用以下方法更新 id_subscription:

if(isset(....){ 
...... 
    $mysqli->query("INSERT INTO table (a,b,c, ...etc) VALUES('','',''..etc)"); 
    $year = date('Y'); 
    $mysqli_query("SELECT * FROM table_name"); 
    $studentID = $mysqli_insert_id(); 
    $ID = substr($student->dateNaissance,8,10).$ID."/".$year; 
    $mysqli->query("UPDATE table_name SET id_subscription = $ID"); 
} 

但它不起作用:\

顺便说一句:在我的表中,我使用 auto_increment id + 我想在其中插入上面显示的自定义 id 的订阅 ID。

4

2 回答 2

1

假设 row id 是一个 auto_increment 字段,那么您必须分两个阶段进行:

  1. 开始交易
  2. 将所有内容插入数据库,除了您的 id 字段
  3. 使用 last_insert_id() 获取 mysql 生成的 ID 字段
  4. 建立自己的 id 字段
  5. 用这个新的 id 更新记录
  6. 提交事务。
于 2013-02-18T16:44:26.527 回答
0

关于数据库结构: 1. 您可以在表中使用自动递增的主键并将数据(student_id)存储为单独的列(推荐)。

在获取“一行的最后一个 id”时: 1. 使用 mysql_insert_id() ..看看这个

于 2013-02-18T16:47:57.683 回答