如何在mysqli中插入用户的自定义铭文ID?

时间:2013-02-18 16:40:34

标签: php mysqli uniqueidentifier

我正在制作学校经理剧本。 我不知道如何插入自定义唯一ID订阅...

我只是使用此功能在数据库中显示他/她的完整信息时显示它的唯一订阅ID:

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

该功能由三件事组成:

  • 出生年份的最后两位数字(例如:01/01/1981 ..我只使用了这个 - >使用substr函数的81;)
  • 数据库中表格的行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 + subscription_id,我想在其中插入我在上面显示的自定义ID。

2 个答案:

答案 0 :(得分:1)

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

  1. 启动交易
  2. 将所有内容插入数据库 EXCEPT 您的ID字段
  3. 使用last_insert_id()获取mysql生成的ID字段
  4. 构建自己的id字段
  5. 使用此新ID更新记录
  6. 提交交易。

答案 1 :(得分:0)

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

获取'行的最后一个ID': 1.使用mysql_insert_id().. check this out