Heim  >  Artikel  >  Backend-Entwicklung  >  如何在两个表中同时插入数据

如何在两个表中同时插入数据

WBOY
WBOYOriginal
2016-06-06 20:08:081994Durchsuche

如何在两个表中同时插入数据

如何在两个表中同时插入数据

如何在两个表中同时插入数据

点击提交订单的时候,如何让这两张表同时生成,order_goods表中,order_id,goods_id分别是order表和goods表的外键,,怎样才能做到,没思路

回复内容:

如何在两个表中同时插入数据

如何在两个表中同时插入数据

如何在两个表中同时插入数据

点击提交订单的时候,如何让这两张表同时生成,order_goods表中,order_id,goods_id分别是order表和goods表的外键,,怎样才能做到,没思路

商品表已经有了,所以在下单时插入订单表,同一事务内再插入订单商品表。由于外键,只能先订单后订单商品。

mysql无法实现同时插入两个表的,可以用事务保证一致性。

同问
怎样判断插入订单表操作成功了呢?
就是说,插入订单表和插入订单商品表要同时执行成功哦
用到什么特别的知识吗
这样行吗
先获取插入订单执行后的id,如果订单表id是自增的,执行成功会返回插入成功这行记录的id,如果插入失败,则返回0,然后我根据这个id判断是不是需要执行插入订单商品表的操作?
是这样的吗?

如果数据表没用主外键的话 就用两条sql语句吧
以俩个插入的id是否同时为正判断是否插入成功
如果某一个插入不成功 删除插入成功的数据

可以使用mysql的事务来保证数据的一致性;

$handler=mysql_connect("localhost","root","password");
mysql_select_db("task");
mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN");//开始事务定义
if(!mysql_query("insert into trans (id) values('2')"))
{
mysql_query("ROLLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert into trans (id) values('4')"))
{
mysql_query("ROLLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn