我在添加产品时有以下表格
等5个表。共有8个表,所有表都通过pid
作为外键链接。
我知道以下三种方法:
在所有表格上逐一使用Insert语句
$sql = "table 1 insert"; $sq2 = "table 2 insert";
使用BEGIN和COMMIT语句。
BEGIN
$sql = "table 1 insert";
$sq2 = "table 2 insert";
COMMIT
有没有更好的方法,超出3以上哪种方法更快更熟练?
答案 0 :(得分:1)
使用
的优势 BEGIN
$sql = "table 1 insert";
$sq2 = "table 2 insert";
COMMIT
是您的更改可以在服务器端一起批处理。
因为您要对多个表进行更改,所以将所有更改放入事务(而不是在自动提交中运行)将允许您退出所有更改,如果其中一个更改失败。它还允许对数据库的更改以原子方式显示给其他客户端,而不是在每个查询执行时使更改变为可见。
在这种情况下,它不是一个因素,但是当同一个表的多个修改被批处理时,这也可以更有效地更新索引。
如何在PHP代码中实现它取决于您。根据应用程序的需要,处理一切的一个函数可能没问题。但是将数据库中的单个插入调用拆分为可以重用的不同函数(特别是如果产品的各个部分在创建后可能会发生变化)也可能更好,并且有一个函数可以处理"插入产品&# 34;通过启动事务,调用各个函数,处理错误,并在适当时提交或回滚事务。