我的系统中有这个问题,我需要将患者登记到系统中,患者reference_number用于在医院进行预约。我得到的问题是,当患者注册到系统时,预约是同时进行的,我需要更新两个表,患者表和预约表,我必须从患者表中获取reference_number并将其输入预约table.reference号必须从数据库中获取,并且新的应该比旧的递增一次。伙计们,怎么做呢?我对此感到困惑。:(
我正在开发的系统使用codeigniter,php和mysql
向您致敬,Rangana
发布于 2010-09-30 17:07:48
我认为您可以很容易地通过紧接在一起的两个insert语句来实现,并使用mysql_insert_id来获取前一个查询的id。但是,如果您的表的定义不同,这可能对您不起作用:
mysql_query('INSERT INTO patients [...]');
$patientId = mysql_insert_id();
mysql_query('INSERT INTO reservations [...]');发布于 2010-09-30 17:10:18
今天早上我有点赶时间,所以如果这不是一个更全面的解释,请原谅我。我也对codeigniter一无所知,所以希望它能支持存储进程。
在MySQL中有一个LAST_INSERT_ID()函数(请参阅http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id)
您应该能够在存储过程中使用第一个表中的标识来更新第二个表。
希望这能有所帮助。
发布于 2010-09-30 18:01:39
根据模糊的信息,你可以像下面这样做。
$this->db->insert('patients_records_tbl', $data);
$last_id = $this->db->insert_id();
$this->db->insert('other_tbl', array('patient_id' => $last_id));我希望这能为你含糊地涵盖它。
https://stackoverflow.com/questions/3829141
复制相似问题