繁体   English   中英

如何同时将数据插入两个表?

[英]how to insert data to two tables at the same time?

我的系统中存在此问题,我需要向系统中注册患者,患者reference_number用于在医院预约。 我遇到的问题是当患者同时注册到系统时,我需要更新两个表,患者表和保留表,我必须从患者表中获取reference_number并将其输入到保留中table.reference编号必须从数据库中获取,并且新编号应该比旧编号增加一。 这家伙怎么办? 我对此感到困惑。 :(

我正在使用codeigniter,php和mysql开发系统

问候,Rangana

我认为您可以轻松地使用两个接一个的插入语句轻松地做到这一点,并使用mysql_insert_id来获取上一个查询的ID。 但是,如果表的定义不同,这可能对您不起作用:

mysql_query('INSERT INTO patients [...]');
$patientId = mysql_insert_id();
mysql_query('INSERT INTO reservations [...]');

今天早上我有点时间紧张,如果这不是更完整的解释,请原谅我。 我也对codeigniter一无所知,因此希望它确实支持存储的程序。

在MySQL中,存在LAST_INSERT_ID()函数(请参见http://dev.mysql.com/doc/refman/5.0/zh-CN/information-functions.html#function_last-insert-id

您应该能够在存储过程中使用它,以使用第一个表中的标识更新第二个表。

希望能有所帮助。

继续获取含糊不清的信息,您可以按照以下步骤进行操作。

$this->db->insert('patients_records_tbl', $data);
$last_id = $this->db->insert_id();
$this->db->insert('other_tbl', array('patient_id' => $last_id));

我希望为您隐约地涵盖它。

Thomasmalt,JonRed和James Norman thanx伙计们的帮助

这是代码

$this->db->insert('patient',$data);

$sql = "SELECT LAST_INSERT_ID()";
$query = mysql_query($sql);
  if ($query) {
    $row = mysql_fetch_row($query);
    $lastID = $row[0];
 }

$this->db->insert('visit',$visit_data);

$ data和$ visit_data是包含插入数据的两个数组,$ visit_data包含$ lastID

希望你们将来也可以使用它:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM