我正在尝试缩短代码,我认为使用数组是最好的方法。
这段代码几乎是由许多不同的查询(mysqli)组成的,如下所示:
$a = $this->db->query("DELETE * FROM ....");
$b = $this->db->query("DELETE * FROM ....");
$c = $this->db->query("DELETE * FROM ....");
$d = $this->db->query("DELETE * FROM ....");
$e = $this->db->query("DELETE * FROM ....");
$f = $this->db->query("DELETE * FROM ....");
$g = $this->db->query("DELETE * FROM ....");
$h = $this->db->query("DELETE * FROM ....");
$i = $this->db->query("DELETE * FROM ....");
$j = $this->db->query("DELETE * FROM ....");
$k = $this->db->query("DELETE * FROM ....");
要检查此查询是否正确执行,我这样做(因为它们将返回true / false):
if($a && $b && $c && $d && $e && $f && $g && $h && $i && $j && $k){
//action
}
但是每次我必须添加查询时,我都必须将其添加到if语句中,并且它变得很长,我不知道是否包含了它。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
因此,现在我正在考虑使用数组执行此操作:
$a[0] = $this->db->query("DELETE * FROM ....");
$a[1] = $this->db->query("DELETE * FROM ....");
$a[2] = $this->db->query("DELETE * FROM ....");
$a[3] = $this->db->query("DELETE * FROM ....");
$a[4] = $this->db->query("DELETE * FROM ....");
$a[5] = $this->db->query("DELETE * FROM ....");
$a[6] = $this->db->query("DELETE * FROM ....");
$a[7] = $this->db->query("DELETE * FROM ....");
$a[8] = $this->db->query("DELETE * FROM ....");
$a[9] = $this->db->query("DELETE * FROM ....");
$a[10] = $this->db->query("DELETE * FROM ....");
if($a === true){
//ok
}else{
//notok;
}
但是此代码(如果语句)不起作用...我在做什么错?
尝试:
$queries=array(
'DELETE * FROM ....',
'DELETE * FROM ....',
'DELETE * FROM ....',
'DELETE * FROM ....',
);
$is_all_good=true;
foreach($queries as $sql)
if(!$this->db->query($sql)) {$is_all_good=false;break;}
echo $is_all_good?'They are all ok.':'They are not all ok.';
如果您的设置允许交易,也可以将此想法与交易合并。
$queries=array(
'DELETE * FROM ....',
'DELETE * FROM ....',
'DELETE * FROM ....',
'DELETE * FROM ....',
);
$this->db->autocommit(false);
foreach($queries as $sql) $this->db->query($sql);
echo $this->db->commit()?'They are all ok.':'They are not all ok.';
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句