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

时间:2017-10-18 13:25:27

标签: mysql joomla

我有一个问题需要在一个中优化以下3个查询。我可以创建一个函数吗?

$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();

2 个答案:

答案 0 :(得分:1)

我没有通过优化清楚地理解你的意思,对不起,如果我误解了,但也许你的意思是这样的?通过在一个

中优化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();

}

答案 1 :(得分:0)

您可以通过在查询末尾添加半列(;)来组合查询。例如:

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

问题是,组合查询不太可能提供任何(甚至略微)明显的性能提升。