Stored procedures few rowset example:
some_file.php
global$global;$db_connect_list= array('site');SQLinit($db_connect_list);
if(isset($global['error'])){return;}SQL('CALL `procedure`();');
while($row=mysqli_fetch_assoc($global['result'])){// do some}SQLnext();
while($row=mysqli_fetch_assoc($global['result'])){// do some}SQLnext();
while($row=mysqli_fetch_assoc($global['result'])){// do some}SQLclose($db_connect_list);
}?>
config.php
$global['sys']['db']['site'] = array('host'=>'localhost','user'=>'site','pass'=>'');?>
engine.php
global$global;
foreach($array_listas$set){
if(!$global['sys']['db'][$set]['connect'] =mysqli_connect($global['sys']['db'][$set]['host'],$global['sys']['db'][$set]['user'],$global['sys']['db'][$set]['pass'])){$global['error']['code'] =500;$global['error']['text'] ='Database not avaliable';$w=fopen('error.log','a+');fwrite($w,'time: '.date('Y M d H:i:s')."\r\n");fwrite($w,'errno: '.mysqli_connect_errno()."\r\n");fwrite($w,'error: '.mysqli_connect_error()."\r\n");fclose($w);
return;
}
if(!isset($global['sys']['default_connect']))$global['sys']['default_connect'] =$global['sys']['db'][$set]['connect'];SQL('SET NAMES \'utf8\' COLLATE \'utf8_unicode_ci\';',$global['sys']['db'][$set]['connect']);SQL('SET CHARACTER SET \'utf8\';',$global['sys']['db'][$set]['connect']);SQL('SET character_set_connection = \'utf8\';',$global['sys']['db'][$set]['connect']);
}
}
functionmTime(){
list($usec,$sec) =explode(" ",microtime());
return ((float)$usec+(float)$sec);
}
functionSQL($sql,$connect= -1){
global$global;
if($connect=== -1)$connect=$global['sys']['default_connect'];
if(isset($global['error']['sql']))return;
while ($connect->next_result())$connect->store_result();$begin=mTime();$global['result']=mysqli_query($connect,$sql);$end=mTime();$global['sys']['time_sql']+=$end-$begin;$error=mysqli_error($connect);
if($error!=''){$global['error']['code'] =502;$global['error']['text'] ='SQL error';$global['error']['sql'] =true;$w=fopen('error.log','a+');fwrite($w,'time: '.date('Y M d H:i:s')."\r\n");fwrite($w,'errno: '.mysqli_errno($connect)."\r\n");fwrite($w,'error: '.$error."\r\n");fwrite($w,'sql: '.$sql."\r\n");fclose($w);
}else{$w=fopen('sql.log','a+');fwrite($w,'time: '.date('Y M d H:i:s')."\r\n");fwrite($w,'sql: '.$sql."\r\n");fclose($w);
}
}
functionSQLnext($connect= -1){
global$global;
if($connect=== -1)$connect=$global['sys']['default_connect'];
if(isset($global['error']['sql']))return;$connect->next_result();$global['result'] =$connect->store_result();
}
functionSQLclose($array_list){
global$global;
foreach($array_listas$set){mysqli_close($global['sys']['db'][$set]['connect']);
}
}?>