在一个查询中插入/更新数据到3个表joomla

在一个查询中插入/更新数据到3个表joomla

问题描述:

我有一个问题需要在一个中优化以下3个查询。我可以创建一个函数吗?在一个查询中插入/更新数据到3个表joomla

$query = "UPDATE #__sbc SET payment_reference ='".$payref."', payment_status = '".$state."' WHERE reference ='".$ref."'"; 
       $db->setQuery($query); 
       $db->query(); 
       //update allforms table 
$query = "UPDATE #__allforms SET payment_reference ='".$payref."', payment_status = '".$state."' WHERE reference ='".$ref."'"; 
       $db->setQuery($query); 
       $db->query(); 
$query = "UPDATE #__printxml SET payment_reference ='".$payref."', payment_status = '".$state."' WHERE reference ='".$ref."'"; 
       $db->setQuery($query); 
       $db->query(); 
+0

创建一个函数只会优化一次到数据库的往返行程,而不是三次往返行程,您不会得到太多结果。如果没有编制索引,则更好的优化是索引所有表格的列引用 –

+0

如何更改为1查询?这个怎么做? –

意味着您可以通过添加半柱结合查询(;)来查询的结束。例如:

UPDATE TABLE1 SET `field1`=2 WHERE `id`=5;UPDATE TABLE1 SET `field1`=3 WHERE `id`=6; 

的事情是,组合查询是不可能提供任何(甚至略)显着的性能提升。

我不搞清楚什么是你通过优化,对不起,如果我误解了,但也许你的意思是这样的意思吗?解释什么叫优化查询3在一个

$params=array("sbc","allforms","printxml"); 

foreach ($params as $param){ 

    $query = "UPDATE #__".$param." SET payment_reference ='".$payref."', payment_status = '".$state."' WHERE reference ='".$ref."'"; 
    $db->setQuery($query); 
    $db->query(); 

}