Добрый день
Прошу раскритиковать такое подключение к бд:
$__sys=array();
{//bd
$__sys['bd']=array(
'c'=>new PDO('mysql:host=host;dbname=dbname;charset=utf8', 'username', 'pass'),
'd_new'=>array(),
//'d_bd'=>array(),
'execute'=>'',
);
function bd_get_arrays($what='*',$table,$where=false,$where2=false,$order_by=false,$start=false,$limit=false){
$s_act=false;
if($what=='-only_ids'){$s_act='only_ids';$what='*';}
$q=is_object($where)?$where:$GLOBALS['__sys']['bd']['c']->prepare('SELECT '.$what.' FROM '.$table.' WHERE '.($where?$where:'1').
($order_by?' order by '.$order_by:'').($start?' limit '.$start.($limit?', '.$limit:''):''));
$q->execute($where2&&is_array($where2)?$where2:null);
$w=$q->fetchAll();
if($what=='*'){
$I=count($w);
if(!isset($GLOBALS['__sys']['bd']['d_new'][$table]))$GLOBALS['__sys']['bd']['d_new'][$table]=array();
//if(!isset($GLOBALS['__sys']['bd']['d_new'][$table]))$GLOBALS['__sys']['bd']['d_bd'][$table]=array();
for($i=0;$i<$I;$i++){
$GLOBALS['__sys']['bd']['d_new'][$table][$w[$i]['id']]=$w[$i];
//$GLOBALS['__sys']['bd']['d_bd'][$table][$w[$i]['id']]=$w[$i];
}
}
if($s_act=='only_ids'){
$r=array();
$I=count($w);
for($i=0;$i<$I;$i++){
$r[]=$w[$i]['id'];
//$GLOBALS['__sys']['bd']['d_bd'][$table][$w[$i]['id']]=$w[$i];
}
}
return $w;
}
function bd_get_array($what='*',$table,$where=false,$where2=false,$order_by=false){
if(is_numeric($where)){
if(isset($GLOBALS['__sys']['bd']['d_new'][$table],$GLOBALS['__sys']['bd']['d_new'][$table][$where]))
return $GLOBALS['__sys']['bd']['d_new'][$table][$where]; else $where='id='.$where;
}
$q=bd_get_arrays($what='*',$table,$where,$where2,$order_by,1);
return isset($q[0])?$q[0]:false;
}
function bd_set_array($table,$set=false,$where=false,$where2=false,$order_by=false,$start=false,$limit=false){
if(!$set&&is_array($set)&&!empty($set))return;
if(!isset($GLOBALS['__sys']['bd']['d_new'][$table])&&$where)
bd_get_arrays('*',$table,$where,$where2,$order_by,$start,$limit);
if($where){bd_get_arrays('-only_ids',$table,$where,$where2);
}else{$w=array_keys($GLOBALS['__sys']['bd']['d_new'][$table]);$I=count($w);}
$GLOBALS['__sys']['bd']['execute'].='UPDATE `game_marsgame_users` SET ';
for($i=0;$i<$I;$i++){
$r=array_keys($set);
$R=count($r);
for($ri=0;$ri<$R;$ri++){
$GLOBALS['__sys']['bd']['d_new'][$table][$w[$i]][$r[$ri]]=$set[$r[$ri]];
$GLOBALS['__sys']['bd']['execute'].=$r[$ri].'="'.addslashes($set[$r[$ri]]).'"';
}
}
$GLOBALS['__sys']['bd']['execute'].=' WHERE id in('.implode(',',$w).');';
return;
}
function bd_query($sql){
$GLOBALS['__sys']['bd']['c']->query($sql);
}
function bd_close(){
$GLOBALS['__sys']['bd']['c']->query($GLOBALS['__sys']['bd']['execute']);
}
}