insert/update 一个查询 joomla 上的数据到 3 个表
insert/update data to 3 tables on one query 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();
我不是很清楚你这里所说的优化是什么意思,如果我理解有误请见谅,但也许你的意思是这样的?通过一次优化 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();
}
您可以通过在查询末尾添加半列 (;) 来组合查询。例如:
UPDATE TABLE1 SET `field1`=2 WHERE `id`=5;UPDATE TABLE1 SET `field1`=3 WHERE `id`=6;
事实是,组合查询不太可能提供任何(甚至是轻微的)明显的性能提升。
我遇到了一个问题,需要将以下 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();
我不是很清楚你这里所说的优化是什么意思,如果我理解有误请见谅,但也许你的意思是这样的?通过一次优化 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();
}
您可以通过在查询末尾添加半列 (;) 来组合查询。例如:
UPDATE TABLE1 SET `field1`=2 WHERE `id`=5;UPDATE TABLE1 SET `field1`=3 WHERE `id`=6;
事实是,组合查询不太可能提供任何(甚至是轻微的)明显的性能提升。