簡體   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