',($U=="PROCEDURE"?"".html_select("fields[$t][inout]",explode("|",$Zc),$m["inout"]):""),' | ';if($Eb){echo'',script("qsl('input').oninput = function () { editingNameChange.call(this);".($m["field"]!=""||count($n)>1?"":" editingAddRow.call(this);")." };","");}echo'
';edit_type("fields[$t]",$m,$Ya,$zc);if($U=="TABLE"){echo' | ',checkbox("fields[$t][null]",1,$m["null"],"","","block","label-null"),' | | ',checkbox("fields[$t][has_default]",1,$m["has_default"],"","","","label-default"),'',(support("comment")?" | ":"");}echo" | ",(support("move_col")?" "." "." ":""),($ye==""||support("drop_col")?"":"");}}function
process_fields(&$n){$fe=0;if($_POST["up"]){$sd=0;foreach($n
as$z=>$m){if(key($_POST["up"])==$z){unset($n[$z]);array_splice($n,$sd,0,array($m));break;}if(isset($m["field"]))$sd=$fe;$fe++;}}elseif($_POST["down"]){$Ac=false;foreach($n
as$z=>$m){if(isset($m["field"])&&$Ac){unset($n[key($_POST["down"])]);array_splice($n,$fe,0,array($Ac));break;}if(key($_POST["down"])==$z)$Ac=$m;$fe++;}}elseif($_POST["add"]){$n=array_values($n);array_splice($n,key($_POST["add"]),0,array(array()));}elseif(!$_POST["drop_col"])return
false;return
true;}function
normalize_enum($C){return"'".str_replace("'","''",addcslashes(stripcslashes(str_replace($C[0][0].$C[0][0],$C[0][0],substr($C[0],1,-1))),'\\'))."'";}function
grant($r,$df,$d,$le){if(!$df)return
true;if($df==array("ALL PRIVILEGES","GRANT OPTION"))return($r=="GRANT"?queries("$r ALL PRIVILEGES$le WITH GRANT OPTION"):queries("$r ALL PRIVILEGES$le")&&queries("$r GRANT OPTION$le"));return
queries("$r ".preg_replace('~(GRANT OPTION)\([^)]*\)~','\1',implode("$d, ",$df).$d).$le);}function
drop_create($Jb,$h,$Kb,$yg,$Lb,$B,$Pd,$Nd,$Od,$ie,$Yd){if($_POST["drop"])query_redirect($Jb,$B,$Pd);elseif($ie=="")query_redirect($h,$B,$Od);elseif($ie!=$Yd){$lb=queries($h);queries_redirect($B,$Nd,$lb&&queries($Jb));if($lb)queries($Kb);}else
queries_redirect($B,$Nd,queries($yg)&&queries($Lb)&&queries($Jb)&&queries($h));}function
create_trigger($le,$L){global$y;$Cg=" $L[Timing] $L[Event]".($L["Event"]=="UPDATE OF"?" ".idf_escape($L["Of"]):"");return"CREATE TRIGGER ".idf_escape($L["Trigger"]).($y=="mssql"?$le.$Cg:$Cg.$le).rtrim(" $L[Type]\n$L[Statement]",";").";";}function
create_routine($_f,$L){global$Zc,$y;$P=array();$n=(array)$L["fields"];ksort($n);foreach($n
as$m){if($m["field"]!="")$P[]=(preg_match("~^($Zc)\$~",$m["inout"])?"$m[inout] ":"").idf_escape($m["field"]).process_type($m,"CHARACTER SET");}$zb=rtrim("\n$L[definition]",";");return"CREATE $_f ".idf_escape(trim($L["name"]))." (".implode(", ",$P).")".(isset($_GET["function"])?" RETURNS".process_type($L["returns"],"CHARACTER SET"):"").($L["language"]?" LANGUAGE $L[language]":"").($y=="pgsql"?" AS ".q($zb):"$zb;");}function
remove_definer($I){return
preg_replace('~^([A-Z =]+) DEFINER=`'.preg_replace('~@(.*)~','`@`(%|\1)',logged_user()).'`~','\1',$I);}function
format_foreign_key($o){global$me;return" FOREIGN KEY (".implode(", ",array_map('idf_escape',$o["source"])).") REFERENCES ".table($o["table"])." (".implode(", ",array_map('idf_escape',$o["target"])).")".(preg_match("~^($me)\$~",$o["on_delete"])?" ON DELETE $o[on_delete]":"").(preg_match("~^($me)\$~",$o["on_update"])?" ON UPDATE $o[on_update]":"");}function
tar_file($sc,$Hg){$K=pack("a100a8a8a8a12a12",$sc,644,0,0,decoct($Hg->size),decoct(time()));$Qa=8*32;for($t=0;$tsend();echo
str_repeat("\0",511-($Hg->size+511)%512);}function
ini_bytes($Yc){$X=ini_get($Yc);switch(strtolower(substr($X,-1))){case'g':$X*=1024;case'm':$X*=1024;case'k':$X*=1024;}return$X;}function
doc_link($Oe,$zg="?"){global$y,$f;$Mf=$f->server_info;$nh=preg_replace('~^(\d\.?\d).*~s','\1',$Mf);$fh=array('sql'=>"https://dev.mysql.com/doc/refman/$nh/en/",'sqlite'=>"https://www.sqlite.org/",'pgsql'=>"https://www.postgresql.org/docs/$nh/static/",'mssql'=>"https://msdn.microsoft.com/library/",'oracle'=>"https://download.oracle.com/docs/cd/B19306_01/server.102/b14200/",);if(preg_match('~MariaDB~',$Mf)){$fh['sql']="https://mariadb.com/kb/en/library/";$Oe['sql']=(isset($Oe['mariadb'])?$Oe['mariadb']:str_replace(".html","/",$Oe['sql']));}return($Oe[$y]?"$zg":"");}function
ob_gzencode($fg){return
gzencode($fg);}function
db_size($j){global$f;if(!$f->select_db($j))return"?";$K=0;foreach(table_status()as$R)$K+=$R["Data_length"]+$R["Index_length"];return
format_number($K);}function
set_utf8mb4($h){global$f;static$P=false;if(!$P&&preg_match('~\butf8mb4~i',$h)){$P=true;echo"SET NAMES ".charset($f).";\n\n";}}function
connect_error(){global$b,$f,$T,$l,$Ib;if(DB!=""){header("HTTP/1.1 404 Not Found");page_header(lang(33).": ".h(DB),lang(106),true);}else{if($_POST["db"]&&!$l)queries_redirect(substr(ME,0,-1),lang(107),drop_databases($_POST["db"]));page_header(lang(108),$l,false);echo" \n";foreach(array('database'=>lang(109),'privileges'=>lang(67),'processlist'=>lang(110),'variables'=>lang(111),'status'=>lang(112),)as$z=>$X){if(support($z))echo"$X\n";}echo" ".lang(113,$Ib[DRIVER],"".h($f->server_info)."","$f->extension")."\n"," ".lang(114,"".h(logged_user())."")."\n";$i=$b->databases();if($i){$Ff=support("scheme");$Ya=collations();echo" \n",script("tableCheck();");}}page_footer("db");}if(isset($_GET["status"]))$_GET["variables"]=$_GET["status"];if(isset($_GET["import"]))$_GET["sql"]=$_GET["import"];if(!(DB!=""?$f->select_db(DB):isset($_GET["sql"])||isset($_GET["dump"])||isset($_GET["database"])||isset($_GET["processlist"])||isset($_GET["privileges"])||isset($_GET["user"])||isset($_GET["variables"])||$_GET["script"]=="connect"||$_GET["script"]=="kill")){if(DB!=""||$_GET["refresh"]){restart_session();set_session("dbs",null);}connect_error();exit;}$me="RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT";class
TmpFile{var$handler;var$size;function
__construct(){$this->handler=tmpfile();}function
write($gb){$this->size+=strlen($gb);fwrite($this->handler,$gb);}function
send(){fseek($this->handler,0);fpassthru($this->handler);fclose($this->handler);}}$Zb="'(?:''|[^'\\\\]|\\\\.)*'";$Zc="IN|OUT|INOUT";if(isset($_GET["select"])&&($_POST["edit"]||$_POST["clone"])&&!$_POST["save"])$_GET["edit"]=$_GET["select"];if(isset($_GET["callf"]))$_GET["call"]=$_GET["callf"];if(isset($_GET["function"]))$_GET["procedure"]=$_GET["function"];if(isset($_GET["download"])){$a=$_GET["download"];$n=fields($a);header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=".friendly_url("$a-".implode("_",$_GET["where"])).".".friendly_url($_GET["field"]));$N=array(idf_escape($_GET["field"]));$J=$k->select($a,$N,array(where($_GET,$n)),$N);$L=($J?$J->fetch_row():array());echo$k->value($L[0],$n[$_GET["field"]]);exit;}elseif(isset($_GET["table"])){$a=$_GET["table"];$n=fields($a);if(!$n)$l=error();$R=table_status1($a,true);$E=$b->tableName($R);page_header(($n&&is_view($R)?$R['Engine']=='materialized view'?lang(122):lang(123):lang(124)).": ".($E!=""?$E:h($a)),$l);$b->selectLinks($R);$cb=$R["Comment"];if($cb!="")echo"".lang(46).": ".h($cb)."\n";if($n)$b->tableStructurePrint($n);if(!is_view($R)){if(support("indexes")){echo" ".lang(125)."\n";$x=indexes($a);if($x)$b->tableIndexesPrint($x);echo''.lang(126)."\n";}if(fk_support($R)){echo" ".lang(94)."\n";$zc=foreign_keys($a);if($zc){echo"\n","".lang(127)." | ".lang(128)." | ".lang(97)." | ".lang(96)." | | \n";foreach($zc
as$E=>$o){echo"","".implode(", ",array_map('h',$o["source"])).""," | ".($o["db"]!=""?"".h($o["db"]).".":"").($o["ns"]!=""?"".h($o["ns"]).".":"").h($o["table"])."","(".implode(", ",array_map('h',$o["target"])).")"," | ".h($o["on_delete"])."\n"," | ".h($o["on_update"])."\n",' | '.lang(129).'';}echo" | \n";}echo''.lang(130)."\n";}}if(support(is_view($R)?"view_trigger":"trigger")){echo" ".lang(131)."\n";$Rg=triggers($a);if($Rg){echo"\n";foreach($Rg
as$z=>$X)echo"".h($X[0])." | ".h($X[1])." | ".h($z)." | ".lang(129)."\n";echo" |
---|
\n";}echo''.lang(132)."\n";}}elseif(isset($_GET["schema"])){page_header(lang(66),"",array(),h(DB.($_GET["ns"]?".$_GET[ns]":"")));$pg=array();$qg=array();$ea=($_GET["schema"]?$_GET["schema"]:$_COOKIE["adminer_schema-".str_replace(".","_",DB)]);preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$ea,$Fd,PREG_SET_ORDER);foreach($Fd
as$t=>$C){$pg[$C[1]]=array($C[2],$C[3]);$qg[]="\n\t'".js_escape($C[1])."': [ $C[2], $C[3] ]";}$Jg=0;$Da=-1;$Ef=array();$qf=array();$wd=array();foreach(table_status('',true)as$Q=>$R){if(is_view($R))continue;$Te=0;$Ef[$Q]["fields"]=array();foreach(fields($Q)as$E=>$m){$Te+=1.25;$m["pos"]=$Te;$Ef[$Q]["fields"][$E]=$m;}$Ef[$Q]["pos"]=($pg[$Q]?$pg[$Q]:array($Jg,0));foreach($b->foreignKeys($Q)as$X){if(!$X["db"]){$ud=$Da;if($pg[$Q][1]||$pg[$X["table"]][1])$ud=min(floatval($pg[$Q][1]),floatval($pg[$X["table"]][1]))-1;else$Da-=.1;while($wd[(string)$ud])$ud-=.0001;$Ef[$Q]["references"][$X["table"]][(string)$ud]=array($X["source"],$X["target"]);$qf[$X["table"]][$Q][(string)$ud]=$X["target"];$wd[(string)$ud]=true;}}$Jg=max($Jg,$Ef[$Q]["pos"][0]+2.5+$Te);}echo'
';foreach($Ef
as$E=>$Q){echo" ",' '.h($E)."",script("qsl('div').onmousedown = schemaMousedown;");foreach($Q["fields"]as$m){$X=' '.h($m["field"]).'';echo" ".($m["primary"]?" $X":$X);}foreach((array)$Q["references"]as$wg=>$rf){foreach($rf
as$ud=>$nf){$vd=$ud-$pg[$E][1];$t=0;foreach($nf[0]as$Vf)echo"\n ";}}foreach((array)$qf[$E]as$wg=>$rf){foreach($rf
as$ud=>$d){$vd=$ud-$pg[$E][1];$t=0;foreach($d
as$vg)echo"\n ";}}echo"\n \n";}foreach($Ef
as$E=>$Q){foreach((array)$Q["references"]as$wg=>$rf){foreach($rf
as$ud=>$nf){$Rd=$Jg;$Jd=-10;foreach($nf[0]as$z=>$Vf){$Ue=$Q["pos"][0]+$Q["fields"][$Vf]["pos"];$Ve=$Ef[$wg]["pos"][0]+$Ef[$wg]["fields"][$nf[1][$z]]["pos"];$Rd=min($Rd,$Ue,$Ve);$Jd=max($Jd,$Ue,$Ve);}echo" \n";}}}echo'
',lang(133),'
';}elseif(isset($_GET["dump"])){$a=$_GET["dump"];if($_POST&&!$l){$jb="";foreach(array("output","format","db_style","routines","events","table_style","auto_increment","triggers","data_style")as$z)$jb.="&$z=".urlencode($_POST[$z]);cookie("adminer_export",substr($jb,1));$S=array_flip((array)$_POST["tables"])+array_flip((array)$_POST["data"]);$kc=dump_headers((count($S)==1?key($S):DB),(DB==""||count($S)>1));$hd=preg_match('~sql~',$_POST["format"]);if($hd){echo"-- Adminer $ga ".$Ib[DRIVER]." dump\n\n";if($y=="sql"){echo"SET NAMES utf8;
SET time_zone = '+00:00';
".($_POST["data_style"]?"SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
":"")."
";$f->query("SET time_zone = '+00:00';");}}$hg=$_POST["db_style"];$i=array(DB);if(DB==""){$i=$_POST["databases"];if(is_string($i))$i=explode("\n",rtrim(str_replace("\r","",$i),"\n"));}foreach((array)$i
as$j){$b->dumpDatabase($j);if($f->select_db($j)){if($hd&&preg_match('~CREATE~',$hg)&&($h=$f->result("SHOW CREATE DATABASE ".idf_escape($j),1))){set_utf8mb4($h);if($hg=="DROP+CREATE")echo"DROP DATABASE IF EXISTS ".idf_escape($j).";\n";echo"$h;\n";}if($hd){if($hg)echo
use_sql($j).";\n\n";$Ce="";if($_POST["routines"]){foreach(array("FUNCTION","PROCEDURE")as$_f){foreach(get_rows("SHOW $_f STATUS WHERE Db = ".q($j),null,"-- ")as$L){$h=remove_definer($f->result("SHOW CREATE $_f ".idf_escape($L["Name"]),2));set_utf8mb4($h);$Ce.=($hg!='DROP+CREATE'?"DROP $_f IF EXISTS ".idf_escape($L["Name"]).";;\n":"")."$h;;\n\n";}}}if($_POST["events"]){foreach(get_rows("SHOW EVENTS",null,"-- ")as$L){$h=remove_definer($f->result("SHOW CREATE EVENT ".idf_escape($L["Name"]),3));set_utf8mb4($h);$Ce.=($hg!='DROP+CREATE'?"DROP EVENT IF EXISTS ".idf_escape($L["Name"]).";;\n":"")."$h;;\n\n";}}if($Ce)echo"DELIMITER ;;\n\n$Ce"."DELIMITER ;\n\n";}if($_POST["table_style"]||$_POST["data_style"]){$ph=array();foreach(table_status('',true)as$E=>$R){$Q=(DB==""||in_array($E,(array)$_POST["tables"]));$rb=(DB==""||in_array($E,(array)$_POST["data"]));if($Q||$rb){if($kc=="tar"){$Hg=new
TmpFile;ob_start(array($Hg,'write'),1e5);}$b->dumpTable($E,($Q?$_POST["table_style"]:""),(is_view($R)?2:0));if(is_view($R))$ph[]=$E;elseif($rb){$n=fields($E);$b->dumpData($E,$_POST["data_style"],"SELECT *".convert_fields($n,$n)." FROM ".table($E));}if($hd&&$_POST["triggers"]&&$Q&&($Rg=trigger_sql($E)))echo"\nDELIMITER ;;\n$Rg\nDELIMITER ;\n";if($kc=="tar"){ob_end_flush();tar_file((DB!=""?"":"$j/")."$E.csv",$Hg);}elseif($hd)echo"\n";}}foreach($ph
as$oh)$b->dumpTable($oh,$_POST["table_style"],1);if($kc=="tar")echo
pack("x512");}}}if($hd)echo"-- ".$f->result("SELECT NOW()")."\n";exit;}page_header(lang(69),$l,($_GET["export"]!=""?array("table"=>$_GET["export"]):array()),h(DB));echo'
';$uc=true;foreach($Ye
as$z=>$X){if($z!=""&&$X>1){echo($uc?"":" ")."".h($z)."";$uc=false;}}}elseif(isset($_GET["privileges"])){page_header(lang(67));echo' '.lang(139)."";$J=$f->query("SELECT User, Host FROM mysql.".(DB==""?"user":"db WHERE ".q(DB)." LIKE Db")." ORDER BY Host, User");$r=$J;if(!$J)$J=$f->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1) AS User, SUBSTRING_INDEX(CURRENT_USER, '@', -1) AS Host");echo" \n";}elseif(isset($_GET["sql"])){if(!$l&&$_POST["export"]){dump_headers("sql");$b->dumpTable("","");$b->dumpData("","table",$_POST["query"]);exit;}restart_session();$Qc=&get_session("queries");$Pc=&$Qc[DB];if(!$l&&$_POST["clear"]){$Pc=array();redirect(remove_from_uri("history"));}page_header((isset($_GET["import"])?lang(68):lang(60)),$l);if(!$l&&$_POST){$p=false;if(!isset($_GET["import"]))$I=$_POST["query"];elseif($_POST["webfile"]){$Yf=$b->importServerPath();$p=@fopen((file_exists($Yf)?$Yf:"compress.zlib://$Yf.gz"),"rb");$I=($p?fread($p,1e6):false);}else$I=get_file("sql_file",true);if(is_string($I)){if(function_exists('memory_get_usage'))@ini_set("memory_limit",max(ini_bytes("memory_limit"),2*strlen($I)+memory_get_usage()+8e6));if($I!=""&&strlen($I)<1e6){$H=$I.(preg_match("~;[ \t\r\n]*\$~",$I)?"":";");if(!$Pc||reset(end($Pc))!=$H){restart_session();$Pc[]=array($H,time());set_session("queries",$Qc);stop_session();}}$Wf="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|-- )[^\n]*\n?|--\r?\n)";$_b=";";$fe=0;$Wb=true;$g=connect();if(is_object($g)&&DB!="")$g->select_db(DB);$bb=0;$bc=array();$Ie='[\'"'.($y=="sql"?'`#':($y=="sqlite"?'`[':($y=="mssql"?'[':''))).']|/\*|-- |$'.($y=="pgsql"?'|\$[^$]*\$':'');$Kg=microtime(true);parse_str($_COOKIE["adminer_export"],$ma);$Nb=$b->dumpFormat();unset($Nb["sql"]);while($I!=""){if(!$fe&&preg_match("~^$Wf*+DELIMITER\\s+(\\S+)~i",$I,$C)){$_b=$C[1];$I=substr($I,strlen($C[0]));}else{preg_match('('.preg_quote($_b)."\\s*|$Ie)",$I,$C,PREG_OFFSET_CAPTURE,$fe);list($Ac,$Te)=$C[0];if(!$Ac&&$p&&!feof($p))$I.=fread($p,1e5);else{if(!$Ac&&rtrim($I)=="")break;$fe=$Te+strlen($Ac);if($Ac&&rtrim($Ac)!=$_b){while(preg_match('('.($Ac=='/*'?'\*/':($Ac=='['?']':(preg_match('~^-- |^#~',$Ac)?"\n":preg_quote($Ac)."|\\\\."))).'|$)s',$I,$C,PREG_OFFSET_CAPTURE,$fe)){$Cf=$C[0][0];if(!$Cf&&$p&&!feof($p))$I.=fread($p,1e5);else{$fe=$C[0][1]+strlen($Cf);if($Cf[0]!="\\")break;}}}else{$Wb=false;$H=substr($I,0,$Te);$bb++;$af="".$b->sqlCommandQuery($H)." \n";if($y=="sqlite"&&preg_match("~^$Wf*+ATTACH\\b~i",$H,$C)){echo$af,"".lang(140)."\n";$bc[]=" $bb";if($_POST["error_stops"])break;}else{if(!$_POST["only_errors"]){echo$af;ob_flush();flush();}$bg=microtime(true);if($f->multi_query($H)&&is_object($g)&&preg_match("~^$Wf*+USE\\b~i",$H))$g->query($H);do{$J=$f->store_result();if($f->error){echo($_POST["only_errors"]?$af:"")," ".lang(141).($f->errno?" ($f->errno)":"").": ".error()."\n";$bc[]=" $bb";if($_POST["error_stops"])break
2;}else{$Ag=" (".format_time($bg).")".(strlen($H)<1000?" ".lang(10)."":"");$oa=$f->affected_rows;$sh=($_POST["only_errors"]?"":$k->warnings());$th="warnings-$bb";if($sh)$Ag.=", ".lang(42)."".script("qsl('a').onclick = partial(toggle, '$th');","");$ic=null;$jc="explain-$bb";if(is_object($J)){$_=$_POST["limit"];$xe=select($J,$g,array(),$_);if(!$_POST["only_errors"]){echo" \n";}}else{if(preg_match("~^$Wf*+(CREATE|DROP|ALTER)$Wf++(DATABASE|SCHEMA)\\b~i",$H)){restart_session();set_session("dbs",null);stop_session();}if(!$_POST["only_errors"])echo"".lang(144,$oa)."$Ag\n";}echo($sh?" \n$sh \n":"");if($ic){echo"\n";select($ic,$g,$xe);echo" \n";}}$bg=microtime(true);}while($f->next_result());}$I=substr($I,$fe);$fe=0;}}}}if($Wb)echo"".lang(145)."\n";elseif($_POST["only_errors"]){echo" ".lang(146,$bb-count($bc))," (".format_time($Kg).")\n";}elseif($bc&&$bb>1)echo" ".lang(141).": ".implode("",$bc)."\n";}else
echo" ".upload_error($I)."\n";}echo'
';}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$n=fields($a);$Z=(isset($_GET["select"])?($_POST["check"]&&count($_POST["check"])==1?where_check($_POST["check"][0],$n):""):where($_GET,$n));$ch=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($n
as$E=>$m){if(!isset($m["privileges"][$ch?"update":"insert"])||$b->fieldName($m)=="")unset($n[$E]);}if($_POST&&!$l&&!isset($_GET["select"])){$B=$_POST["referer"];if($_POST["insert"])$B=($ch?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$B))$B=ME."select=".urlencode($a);$x=indexes($a);$Xg=unique_array($_GET["where"],$x);$jf="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($B,lang(159),$k->delete($a,$jf,!$Xg));else{$P=array();foreach($n
as$E=>$m){$X=process_input($m);if($X!==false&&$X!==null)$P[idf_escape($E)]=$X;}if($ch){if(!$P)redirect($B);queries_redirect($B,lang(160),$k->update($a,$P,$jf,!$Xg));if(is_ajax()){page_headers();page_messages($l);exit;}}else{$J=$k->insert($a,$P);$td=($J?last_id():0);queries_redirect($B,lang(161,($td?" $td":"")),$J);}}}$L=null;if($_POST["save"])$L=(array)$_POST["fields"];elseif($Z){$N=array();foreach($n
as$E=>$m){if(isset($m["privileges"]["select"])){$va=convert_field($m);if($_POST["clone"]&&$m["auto_increment"])$va="''";if($y=="sql"&&preg_match("~enum|set~",$m["type"]))$va="1*".idf_escape($E);$N[]=($va?"$va AS ":"").idf_escape($E);}}$L=array();if(!support("table"))$N=array("*");if($N){$J=$k->select($a,$N,array($Z),$N,array(),(isset($_GET["select"])?2:1));if(!$J)$l=error();else{$L=$J->fetch_assoc();if(!$L)$L=false;}if(isset($_GET["select"])&&(!$L||$J->fetch_assoc()))$L=null;}}if(!support("table")&&!$n){if(!$Z){$J=$k->select($a,array("*"),$Z,array("*"));$L=($J?$J->fetch_assoc():false);if(!$L)$L=array($k->primary=>"");}if($L){foreach($L
as$z=>$X){if(!$Z)$L[$z]=null;$n[$z]=array("field"=>$z,"null"=>($z!=$k->primary),"auto_increment"=>($z==$k->primary));}}}edit_form($a,$n,$L,$ch);}elseif(isset($_GET["create"])){$a=$_GET["create"];$Je=array();foreach(array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST')as$z)$Je[$z]=$z;$pf=referencable_primary($a);$zc=array();foreach($pf
as$og=>$m)$zc[str_replace("`","``",$og)."`".str_replace("`","``",$m["field"])]=$og;$_e=array();$R=array();if($a!=""){$_e=fields($a);$R=table_status($a);if(!$R)$l=lang(9);}$L=$_POST;$L["fields"]=(array)$L["fields"];if($L["auto_increment_col"])$L["fields"][$L["auto_increment_col"]]["auto_increment"]=true;if($_POST)set_adminer_settings(array("comments"=>$_POST["comments"],"defaults"=>$_POST["defaults"]));if($_POST&&!process_fields($L["fields"])&&!$l){if($_POST["drop"])queries_redirect(substr(ME,0,-1),lang(162),drop_tables(array($a)));else{$n=array();$sa=array();$gh=false;$xc=array();$ze=reset($_e);$qa=" FIRST";foreach($L["fields"]as$z=>$m){$o=$zc[$m["type"]];$Sg=($o!==null?$pf[$o]:$m);if($m["field"]!=""){if(!$m["has_default"])$m["default"]=null;if($z==$L["auto_increment_col"])$m["auto_increment"]=true;$ff=process_field($m,$Sg);$sa[]=array($m["orig"],$ff,$qa);if($ff!=process_field($ze,$ze)){$n[]=array($m["orig"],$ff,$qa);if($m["orig"]!=""||$qa)$gh=true;}if($o!==null)$xc[idf_escape($m["field"])]=($a!=""&&$y!="sqlite"?"ADD":" ").format_foreign_key(array('table'=>$zc[$m["type"]],'source'=>array($m["field"]),'target'=>array($Sg["field"]),'on_delete'=>$m["on_delete"],));$qa=" AFTER ".idf_escape($m["field"]);}elseif($m["orig"]!=""){$gh=true;$n[]=array($m["orig"]);}if($m["orig"]!=""){$ze=next($_e);if(!$ze)$qa="";}}$Le="";if($Je[$L["partition_by"]]){$Me=array();if($L["partition_by"]=='RANGE'||$L["partition_by"]=='LIST'){foreach(array_filter($L["partition_names"])as$z=>$X){$Y=$L["partition_values"][$z];$Me[]="\n PARTITION ".idf_escape($X)." VALUES ".($L["partition_by"]=='RANGE'?"LESS THAN":"IN").($Y!=""?" ($Y)":" MAXVALUE");}}$Le.="\nPARTITION BY $L[partition_by]($L[partition])".($Me?" (".implode(",",$Me)."\n)":($L["partitions"]?" PARTITIONS ".(+$L["partitions"]):""));}elseif(support("partitioning")&&preg_match("~partitioned~",$R["Create_options"]))$Le.="\nREMOVE PARTITIONING";$D=lang(163);if($a==""){cookie("adminer_engine",$L["Engine"]);$D=lang(164);}$E=trim($L["name"]);queries_redirect(ME.(support("table")?"table=":"select=").urlencode($E),$D,alter_table($a,$E,($y=="sqlite"&&($gh||$xc)?$sa:$n),$xc,($L["Comment"]!=$R["Comment"]?$L["Comment"]:null),($L["Engine"]&&$L["Engine"]!=$R["Engine"]?$L["Engine"]:""),($L["Collation"]&&$L["Collation"]!=$R["Collation"]?$L["Collation"]:""),($L["Auto_increment"]!=""?number($L["Auto_increment"]):""),$Le));}}page_header(($a!=""?lang(40):lang(70)),$l,array("table"=>$a),h($a));if(!$_POST){$L=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($Ug["int"])?"int":(isset($Ug["integer"])?"integer":"")),"on_update"=>"")),"partition_names"=>array(""),);if($a!=""){$L=$R;$L["name"]=$a;$L["fields"]=array();if(!$_GET["auto_increment"])$L["Auto_increment"]="";foreach($_e
as$m){$m["has_default"]=isset($m["default"]);$L["fields"][]=$m;}if(support("partitioning")){$Cc="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($a);$J=$f->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $Cc ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");list($L["partition_by"],$L["partitions"],$L["partition"])=$J->fetch_row();$Me=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $Cc AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$Me[""]="";$L["partition_names"]=array_keys($Me);$L["partition_values"]=array_values($Me);}}}$Ya=collations();$Yb=engines();foreach($Yb
as$Xb){if(!strcasecmp($Xb,$L["Engine"])){$L["Engine"]=$Xb;break;}}echo'
',script("qs('#form')['defaults'].onclick();".(support("comment")?" editingCommentsClick(qs('#form')['comments']);":""));}elseif(isset($_GET["indexes"])){$a=$_GET["indexes"];$Xc=array("PRIMARY","UNIQUE","INDEX");$R=table_status($a,true);if(preg_match('~MyISAM|M?aria'.(min_version(5.6,'10.0.5')?'|InnoDB':'').'~i',$R["Engine"]))$Xc[]="FULLTEXT";if(preg_match('~MyISAM|M?aria'.(min_version(5.7,'10.2.2')?'|InnoDB':'').'~i',$R["Engine"]))$Xc[]="SPATIAL";$x=indexes($a);$Ze=array();if($y=="mongo"){$Ze=$x["_id_"];unset($Xc[0]);unset($x["_id_"]);}$L=$_POST;if($_POST&&!$l&&!$_POST["add"]&&!$_POST["drop_col"]){$ta=array();foreach($L["indexes"]as$w){$E=$w["name"];if(in_array($w["type"],$Xc)){$d=array();$zd=array();$Bb=array();$P=array();ksort($w["columns"]);foreach($w["columns"]as$z=>$c){if($c!=""){$yd=$w["lengths"][$z];$Ab=$w["descs"][$z];$P[]=idf_escape($c).($yd?"(".(+$yd).")":"").($Ab?" DESC":"");$d[]=$c;$zd[]=($yd?$yd:null);$Bb[]=$Ab;}}if($d){$hc=$x[$E];if($hc){ksort($hc["columns"]);ksort($hc["lengths"]);ksort($hc["descs"]);if($w["type"]==$hc["type"]&&array_values($hc["columns"])===$d&&(!$hc["lengths"]||array_values($hc["lengths"])===$zd)&&array_values($hc["descs"])===$Bb){unset($x[$E]);continue;}}$ta[]=array($w["type"],$E,$P);}}}foreach($x
as$E=>$hc)$ta[]=array($hc["type"],$E,"DROP");if(!$ta)redirect(ME."table=".urlencode($a));queries_redirect(ME."table=".urlencode($a),lang(173),alter_indexes($a,$ta));}page_header(lang(125),$l,array("table"=>$a),h($a));$n=array_keys(fields($a));if($_POST["add"]){foreach($L["indexes"]as$z=>$w){if($w["columns"][count($w["columns"])]!="")$L["indexes"][$z]["columns"][]="";}$w=end($L["indexes"]);if($w["type"]||array_filter($w["columns"],'strlen'))$L["indexes"][]=array("columns"=>array(1=>""));}if(!$L){foreach($x
as$z=>$w){$x[$z]["name"]=$z;$x[$z]["columns"][]="";}$x[]=array("columns"=>array(1=>""));$L["indexes"]=$x;}echo'
';}elseif(isset($_GET["database"])){$L=$_POST;if($_POST&&!$l&&!isset($_POST["add_x"])){$E=trim($L["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),lang(177),drop_databases(array(DB)));}elseif(DB!==$E){if(DB!=""){$_GET["db"]=$E;queries_redirect(preg_replace('~\bdb=[^&]*&~','',ME)."db=".urlencode($E),lang(178),rename_database($E,$L["collation"]));}else{$i=explode("\n",str_replace("\r","",$E));$ig=true;$sd="";foreach($i
as$j){if(count($i)==1||$j!=""){if(!create_database($j,$L["collation"]))$ig=false;$sd=$j;}}restart_session();set_session("dbs",null);queries_redirect(ME."db=".urlencode($sd),lang(179),$ig);}}else{if(!$L["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($E).(preg_match('~^[a-z0-9_]+$~i',$L["collation"])?" COLLATE $L[collation]":""),substr(ME,0,-1),lang(180));}}page_header(DB!=""?lang(63):lang(109),$l,array(),h(DB));$Ya=collations();$E=DB;if($_POST)$E=$L["name"];elseif(DB!="")$L["collation"]=db_collation(DB,$Ya);elseif($y=="sql"){foreach(get_vals("SHOW GRANTS")as$r){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\.\*)?~',$r,$C)&&$C[1]){$E=stripcslashes(idf_unescape("`$C[2]`"));break;}}}echo'
';}elseif(isset($_GET["call"])){$da=($_GET["name"]?$_GET["name"]:$_GET["call"]);page_header(lang(181).": ".h($da),$l);$_f=routine($_GET["call"],(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$Wc=array();$Ce=array();foreach($_f["fields"]as$t=>$m){if(substr($m["inout"],-3)=="OUT")$Ce[$t]="@".idf_escape($m["field"])." AS ".idf_escape($m["field"]);if(!$m["inout"]||substr($m["inout"],0,2)=="IN")$Wc[]=$t;}if(!$l&&$_POST){$Ka=array();foreach($_f["fields"]as$z=>$m){if(in_array($z,$Wc)){$X=process_input($m);if($X===false)$X="''";if(isset($Ce[$z]))$f->query("SET @".idf_escape($m["field"])." = $X");}$Ka[]=(isset($Ce[$z])?"@".idf_escape($m["field"]):$X);}$I=(isset($_GET["callf"])?"SELECT":"CALL")." ".table($da)."(".implode(", ",$Ka).")";$bg=microtime(true);$J=$f->multi_query($I);$oa=$f->affected_rows;echo$b->selectQuery($I,$bg,!$J);if(!$J)echo"".error()."\n";else{$g=connect();if(is_object($g))$g->select_db(DB);do{$J=$f->store_result();if(is_object($J))select($J,$g);else
echo" ".lang(182,$oa)."\n";}while($f->next_result());if($Ce)select($f->query("SELECT ".implode(", ",$Ce)));}}echo'
';}elseif(isset($_GET["foreign"])){$a=$_GET["foreign"];$E=$_GET["name"];$L=$_POST;if($_POST&&!$l&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){$D=($_POST["drop"]?lang(183):($E!=""?lang(184):lang(185)));$B=ME."table=".urlencode($a);if(!$_POST["drop"]){$L["source"]=array_filter($L["source"],'strlen');ksort($L["source"]);$vg=array();foreach($L["source"]as$z=>$X)$vg[$z]=$L["target"][$z];$L["target"]=$vg;}if($y=="sqlite")queries_redirect($B,$D,recreate_table($a,$a,array(),array(),array(" $E"=>($_POST["drop"]?"":" ".format_foreign_key($L)))));else{$ta="ALTER TABLE ".table($a);$Jb="\nDROP ".($y=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($E);if($_POST["drop"])query_redirect($ta.$Jb,$B,$D);else{query_redirect($ta.($E!=""?"$Jb,":"")."\nADD".format_foreign_key($L),$B,$D);$l=lang(186)." $l";}}}page_header(lang(187),$l,array("table"=>$a),h($a));if($_POST){ksort($L["source"]);if($_POST["add"])$L["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$L["target"]=array();}elseif($E!=""){$zc=foreign_keys($a);$L=$zc[$E];$L["source"][]="";}else{$L["table"]=$a;$L["source"]=array("");}$Vf=array_keys(fields($a));$vg=($a===$L["table"]?$Vf:array_keys(fields($L["table"])));$of=array_keys(array_filter(table_status('',true),'fk_support'));echo'
';}elseif(isset($_GET["view"])){$a=$_GET["view"];$L=$_POST;$Ae="VIEW";if($y=="pgsql"&&$a!=""){$cg=table_status($a);$Ae=strtoupper($cg["Engine"]);}if($_POST&&!$l){$E=trim($L["name"]);$va=" AS\n$L[select]";$B=ME."table=".urlencode($E);$D=lang(191);$U=($_POST["materialized"]?"MATERIALIZED VIEW":"VIEW");if(!$_POST["drop"]&&$a==$E&&$y!="sqlite"&&$U=="VIEW"&&$Ae=="VIEW")query_redirect(($y=="mssql"?"ALTER":"CREATE OR REPLACE")." VIEW ".table($E).$va,$B,$D);else{$xg=$E."_adminer_".uniqid();drop_create("DROP $Ae ".table($a),"CREATE $U ".table($E).$va,"DROP $U ".table($E),"CREATE $U ".table($xg).$va,"DROP $U ".table($xg),($_POST["drop"]?substr(ME,0,-1):$B),lang(192),$D,lang(193),$a,$E);}}if(!$_POST&&$a!=""){$L=view($a);$L["name"]=$a;$L["materialized"]=($Ae!="VIEW");if(!$l)$l=error();}page_header(($a!=""?lang(39):lang(194)),$l,array("table"=>$a),h($a));echo'
';}elseif(isset($_GET["event"])){$aa=$_GET["event"];$cd=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$dg=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");$L=$_POST;if($_POST&&!$l){if($_POST["drop"])query_redirect("DROP EVENT ".idf_escape($aa),substr(ME,0,-1),lang(195));elseif(in_array($L["INTERVAL_FIELD"],$cd)&&isset($dg[$L["STATUS"]])){$Df="\nON SCHEDULE ".($L["INTERVAL_VALUE"]?"EVERY ".q($L["INTERVAL_VALUE"])." $L[INTERVAL_FIELD]".($L["STARTS"]?" STARTS ".q($L["STARTS"]):"").($L["ENDS"]?" ENDS ".q($L["ENDS"]):""):"AT ".q($L["STARTS"]))." ON COMPLETION".($L["ON_COMPLETION"]?"":" NOT")." PRESERVE";queries_redirect(substr(ME,0,-1),($aa!=""?lang(196):lang(197)),queries(($aa!=""?"ALTER EVENT ".idf_escape($aa).$Df.($aa!=$L["EVENT_NAME"]?"\nRENAME TO ".idf_escape($L["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($L["EVENT_NAME"]).$Df)."\n".$dg[$L["STATUS"]]." COMMENT ".q($L["EVENT_COMMENT"]).rtrim(" DO\n$L[EVENT_DEFINITION]",";").";"));}}page_header(($aa!=""?lang(198).": ".h($aa):lang(199)),$l);if(!$L&&$aa!=""){$M=get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".q(DB)." AND EVENT_NAME = ".q($aa));$L=reset($M);}echo'
';}elseif(isset($_GET["procedure"])){$da=($_GET["name"]?$_GET["name"]:$_GET["procedure"]);$_f=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$L=$_POST;$L["fields"]=(array)$L["fields"];if($_POST&&!process_fields($L["fields"])&&!$l){$ye=routine($_GET["procedure"],$_f);$xg="$L[name]_adminer_".uniqid();drop_create("DROP $_f ".routine_id($da,$ye),create_routine($_f,$L),"DROP $_f ".routine_id($L["name"],$L),create_routine($_f,array("name"=>$xg)+$L),"DROP $_f ".routine_id($xg,$L),substr(ME,0,-1),lang(204),lang(205),lang(206),$da,$L["name"]);}page_header(($da!=""?(isset($_GET["function"])?lang(207):lang(208)).": ".h($da):(isset($_GET["function"])?lang(209):lang(210))),$l);if(!$_POST&&$da!=""){$L=routine($_GET["procedure"],$_f);$L["name"]=$da;}$Ya=get_vals("SHOW CHARACTER SET");sort($Ya);$Af=routine_languages();echo'
';}elseif(isset($_GET["trigger"])){$a=$_GET["trigger"];$E=$_GET["name"];$Qg=trigger_options();$L=(array)trigger($E)+array("Trigger"=>$a."_bi");if($_POST){if(!$l&&in_array($_POST["Timing"],$Qg["Timing"])&&in_array($_POST["Event"],$Qg["Event"])&&in_array($_POST["Type"],$Qg["Type"])){$le=" ON ".table($a);$Jb="DROP TRIGGER ".idf_escape($E).($y=="pgsql"?$le:"");$B=ME."table=".urlencode($a);if($_POST["drop"])query_redirect($Jb,$B,lang(212));else{if($E!="")queries($Jb);queries_redirect($B,($E!=""?lang(213):lang(214)),queries(create_trigger($le,$_POST)));if($E!="")queries(create_trigger($le,$L+array("Type"=>reset($Qg["Type"]))));}}$L=$_POST;}page_header(($E!=""?lang(215).": ".h($E):lang(216)),$l,array("table"=>$a));echo'
';}elseif(isset($_GET["user"])){$fa=$_GET["user"];$df=array(""=>array("All privileges"=>""));foreach(get_rows("SHOW PRIVILEGES")as$L){foreach(explode(",",($L["Privilege"]=="Grant option"?"":$L["Context"]))as$hb)$df[$hb][$L["Privilege"]]=$L["Comment"];}$df["Server Admin"]+=$df["File access on server"];$df["Databases"]["Create routine"]=$df["Procedures"]["Create routine"];unset($df["Procedures"]["Create routine"]);$df["Columns"]=array();foreach(array("Select","Insert","Update","References")as$X)$df["Columns"][$X]=$df["Tables"][$X];unset($df["Server Admin"]["Usage"]);foreach($df["Tables"]as$z=>$X)unset($df["Databases"][$z]);$Xd=array();if($_POST){foreach($_POST["objects"]as$z=>$X)$Xd[$X]=(array)$Xd[$X]+(array)$_POST["grants"][$z];}$Ec=array();$je="";if(isset($_GET["host"])&&($J=$f->query("SHOW GRANTS FOR ".q($fa)."@".q($_GET["host"])))){while($L=$J->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$L[0],$C)&&preg_match_all('~ *([^(,]*[^ ,(])( *\([^)]+\))?~',$C[1],$Fd,PREG_SET_ORDER)){foreach($Fd
as$X){if($X[1]!="USAGE")$Ec["$C[2]$X[2]"][$X[1]]=true;if(preg_match('~ WITH GRANT OPTION~',$L[0]))$Ec["$C[2]$X[2]"]["GRANT OPTION"]=true;}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$L[0],$C))$je=$C[1];}}if($_POST&&!$l){$ke=(isset($_GET["host"])?q($fa)."@".q($_GET["host"]):"''");if($_POST["drop"])query_redirect("DROP USER $ke",ME."privileges=",lang(219));else{$Zd=q($_POST["user"])."@".q($_POST["host"]);$Ne=$_POST["pass"];if($Ne!=''&&!$_POST["hashed"]){$Ne=$f->result("SELECT PASSWORD(".q($Ne).")");$l=!$Ne;}$lb=false;if(!$l){if($ke!=$Zd){$lb=queries((min_version(5)?"CREATE USER":"GRANT USAGE ON *.* TO")." $Zd IDENTIFIED BY PASSWORD ".q($Ne));$l=!$lb;}elseif($Ne!=$je)queries("SET PASSWORD FOR $Zd = ".q($Ne));}if(!$l){$xf=array();foreach($Xd
as$ee=>$r){if(isset($_GET["grant"]))$r=array_filter($r);$r=array_keys($r);if(isset($_GET["grant"]))$xf=array_diff(array_keys(array_filter($Xd[$ee],'strlen')),$r);elseif($ke==$Zd){$he=array_keys((array)$Ec[$ee]);$xf=array_diff($he,$r);$r=array_diff($r,$he);unset($Ec[$ee]);}if(preg_match('~^(.+)\s*(\(.*\))?$~U',$ee,$C)&&(!grant("REVOKE",$xf,$C[2]," ON $C[1] FROM $Zd")||!grant("GRANT",$r,$C[2]," ON $C[1] TO $Zd"))){$l=true;break;}}}if(!$l&&isset($_GET["host"])){if($ke!=$Zd)queries("DROP USER $ke");elseif(!isset($_GET["grant"])){foreach($Ec
as$ee=>$xf){if(preg_match('~^(.+)(\(.*\))?$~U',$ee,$C))grant("REVOKE",array_keys($xf),$C[2]," ON $C[1] FROM $Zd");}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?lang(220):lang(221)),!$l);if($lb)$f->query("DROP USER $Zd");}}page_header((isset($_GET["host"])?lang(31).": ".h("$fa@$_GET[host]"):lang(139)),$l,array("privileges"=>array('',lang(67))));if($_POST){$L=$_POST;$Ec=$Xd;}else{$L=$_GET+array("host"=>$f->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)"));$L["pass"]=$je;if($je!="")$L["hashed"]=true;$Ec[(DB==""||$Ec?"":idf_escape(addcslashes(DB,"%_\\"))).".*"]=array();}echo'
';}elseif(isset($_GET["processlist"])){if(support("kill")&&$_POST&&!$l){$nd=0;foreach((array)$_POST["kill"]as$X){if(kill_process($X))$nd++;}queries_redirect(ME."processlist=",lang(226,$nd),$nd||!$_POST["kill"]);}page_header(lang(110),$l);echo'
',script("tableCheck();");}elseif(isset($_GET["select"])){$a=$_GET["select"];$R=table_status1($a);$x=indexes($a);$n=fields($a);$zc=column_foreign_keys($a);$ge=$R["Oid"];parse_str($_COOKIE["adminer_import"],$na);$yf=array();$d=array();$_g=null;foreach($n
as$z=>$m){$E=$b->fieldName($m);if(isset($m["privileges"]["select"])&&$E!=""){$d[$z]=html_entity_decode(strip_tags($E),ENT_QUOTES);if(is_shortable($m))$_g=$b->selectLengthProcess();}$yf+=$m["privileges"];}list($N,$s)=$b->selectColumnsProcess($d,$x);$gd=count($s)selectSearchProcess($n,$x);$ue=$b->selectOrderProcess($n,$x);$_=$b->selectLimitProcess();if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$Yg=>$L){$va=convert_field($n[key($L)]);$N=array($va?$va:idf_escape(key($L)));$Z[]=where_check($Yg,$n);$K=$k->select($a,$N,$Z,$N);if($K)echo
reset($K->fetch_row());}exit;}$Ze=$ah=null;foreach($x
as$w){if($w["type"]=="PRIMARY"){$Ze=array_flip($w["columns"]);$ah=($N?$Ze:array());foreach($ah
as$z=>$X){if(in_array(idf_escape($z),$N))unset($ah[$z]);}break;}}if($ge&&!$Ze){$Ze=$ah=array($ge=>0);$x[]=array("type"=>"PRIMARY","columns"=>array($ge));}if($_POST&&!$l){$vh=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$Pa=array();foreach($_POST["check"]as$Na)$Pa[]=where_check($Na,$n);$vh[]="((".implode(") OR (",$Pa)."))";}$vh=($vh?"\nWHERE ".implode(" AND ",$vh):"");if($_POST["export"]){cookie("adminer_import","output=".urlencode($_POST["output"])."&format=".urlencode($_POST["format"]));dump_headers($a);$b->dumpTable($a,"");$Cc=($N?implode(", ",$N):"*").convert_fields($d,$n,$N)."\nFROM ".table($a);$Gc=($s&&$gd?"\nGROUP BY ".implode(", ",$s):"").($ue?"\nORDER BY ".implode(", ",$ue):"");if(!is_array($_POST["check"])||$Ze)$I="SELECT $Cc$vh$Gc";else{$Wg=array();foreach($_POST["check"]as$X)$Wg[]="(SELECT".limit($Cc,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$n).$Gc,1).")";$I=implode(" UNION ALL ",$Wg);}$b->dumpData($a,"table",$I);exit;}if(!$b->selectEmailProcess($Z,$zc)){if($_POST["save"]||$_POST["delete"]){$J=true;$oa=0;$P=array();if(!$_POST["delete"]){foreach($d
as$E=>$X){$X=process_input($n[$E]);if($X!==null&&($_POST["clone"]||$X!==false))$P[idf_escape($E)]=($X!==false?$X:idf_escape($E));}}if($_POST["delete"]||$P){if($_POST["clone"])$I="INTO ".table($a)." (".implode(", ",array_keys($P)).")\nSELECT ".implode(", ",$P)."\nFROM ".table($a);if($_POST["all"]||($Ze&&is_array($_POST["check"]))||$gd){$J=($_POST["delete"]?$k->delete($a,$vh):($_POST["clone"]?queries("INSERT $I$vh"):$k->update($a,$P,$vh)));$oa=$f->affected_rows;}else{foreach((array)$_POST["check"]as$X){$uh="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$n);$J=($_POST["delete"]?$k->delete($a,$uh,1):($_POST["clone"]?queries("INSERT".limit1($a,$I,$uh)):$k->update($a,$P,$uh,1)));if(!$J)break;$oa+=$f->affected_rows;}}}$D=lang(230,$oa);if($_POST["clone"]&&$J&&$oa==1){$td=last_id();if($td)$D=lang(161," $td");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$D,$J);if(!$_POST["delete"]){edit_form($a,$n,(array)$_POST["fields"],!$_POST["clone"]);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$l=lang(231);else{$J=true;$oa=0;foreach($_POST["val"]as$Yg=>$L){$P=array();foreach($L
as$z=>$X){$z=bracket_escape($z,1);$P[idf_escape($z)]=(preg_match('~char|text~',$n[$z]["type"])||$X!=""?$b->processInput($n[$z],$X):"NULL");}$J=$k->update($a,$P," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($Yg,$n),!$gd&&!$Ze," ");if(!$J)break;$oa+=$f->affected_rows;}queries_redirect(remove_from_uri(),lang(230,$oa),$J);}}elseif(!is_string($rc=get_file("csv_file",true)))$l=upload_error($rc);elseif(!preg_match('~~u',$rc))$l=lang(232);else{cookie("adminer_import","output=".urlencode($na["output"])."&format=".urlencode($_POST["separator"]));$J=true;$Za=array_keys($n);preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$rc,$Fd);$oa=count($Fd[0]);$k->begin();$Lf=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$M=array();foreach($Fd[0]as$z=>$X){preg_match_all("~((?>\"[^\"]*\")+|[^$Lf]*)$Lf~",$X.$Lf,$Gd);if(!$z&&!array_diff($Gd[1],$Za)){$Za=$Gd[1];$oa--;}else{$P=array();foreach($Gd[1]as$t=>$Va)$P[idf_escape($Za[$t])]=($Va==""&&$n[$Za[$t]]["null"]?"NULL":q(str_replace('""','"',preg_replace('~^"|"$~','',$Va))));$M[]=$P;}}$J=(!$M||$k->insertUpdate($a,$M,$Ze));if($J)$J=$k->commit();queries_redirect(remove_from_uri("page"),lang(233,$oa),$J);$k->rollback();}}}$og=$b->tableName($R);if(is_ajax()){page_headers();ob_start();}else
page_header(lang(49).": $og",$l);$P=null;if(isset($yf["insert"])||!support("table")){$P="";foreach((array)$_GET["where"]as$X){if($zc[$X["col"]]&&count($zc[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&!preg_match('~[_%]~',$X["val"]))))$P.="&set".urlencode("[".bracket_escape($X["col"])."]")."=".urlencode($X["val"]);}}$b->selectLinks($R,$P);if(!$d&&support("table"))echo"".lang(234).($n?".":": ".error())."\n";else{echo" \n";$F=$_GET["page"];if($F=="last"){$Bc=$f->result(count_rows($a,$Z,$gd,$s));$F=floor(max(0,$Bc-1)/$_);}$Gf=$N;$Fc=$s;if(!$Gf){$Gf[]="*";$ib=convert_fields($d,$n,$N);if($ib)$Gf[]=substr($ib,2);}foreach($N
as$z=>$X){$m=$n[idf_unescape($X)];if($m&&($va=convert_field($m)))$Gf[$z]="$va AS $X";}if(!$gd&&$ah){foreach($ah
as$z=>$X){$Gf[]=idf_escape($z);if($Fc)$Fc[]=idf_escape($z);}}$J=$k->select($a,$Gf,$Z,$Fc,$ue,$_,$F,true);if(!$J)echo"".error()."\n";else{if($y=="mssql"&&$F)$J->seek($_*$F);$Vb=array();echo" \n",(!$s&&$N?"":script("tableCheck();"));}}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$cg=isset($_GET["status"]);page_header($cg?lang(112):lang(111));$lh=($cg?show_status():show_variables());if(!$lh)echo"".lang(12)."\n";else{echo" \n";foreach($lh
as$z=>$X){echo"","".h($z)." "," | ".h($X);}echo" | \n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$lg=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$E=>$R){json_row("Comment-$E",h($R["Comment"]));if(!is_view($R)){foreach(array("Engine","Collation")as$z)json_row("$z-$E",h($R[$z]));foreach($lg+array("Auto_increment"=>0,"Rows"=>0)as$z=>$X){if($R[$z]!=""){$X=format_number($R[$z]);json_row("$z-$E",($z=="Rows"&&$X&&$R["Engine"]==($Xf=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($lg[$z]))$lg[$z]+=($R["Engine"]!="InnoDB"||$z!="Data_free"?$R[$z]:0);}elseif(array_key_exists($z,$R))json_row("$z-$E");}}}foreach($lg
as$z=>$X)json_row("sum-$z",format_number($X));json_row("");}elseif($_GET["script"]=="kill")$f->query("KILL ".number($_POST["kill"]));else{foreach(count_tables($b->databases())as$j=>$X){json_row("tables-$j",$X);json_row("size-$j",db_size($j));}json_row("");}exit;}else{$tg=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($tg&&!$l&&!$_POST["search"]){$J=true;$D="";if($y=="sql"&&$_POST["tables"]&&count($_POST["tables"])>1&&($_POST["drop"]||$_POST["truncate"]||$_POST["copy"]))queries("SET foreign_key_checks = 0");if($_POST["truncate"]){if($_POST["tables"])$J=truncate_tables($_POST["tables"]);$D=lang(244);}elseif($_POST["move"]){$J=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$D=lang(245);}elseif($_POST["copy"]){$J=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$D=lang(246);}elseif($_POST["drop"]){if($_POST["views"])$J=drop_views($_POST["views"]);if($J&&$_POST["tables"])$J=drop_tables($_POST["tables"]);$D=lang(247);}elseif($y!="sql"){$J=($y=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$D=lang(248);}elseif(!$_POST["tables"])$D=lang(9);elseif($J=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('idf_escape',$_POST["tables"])))){while($L=$J->fetch_assoc())$D.="".h($L["Table"]).": ".h($L["Msg_text"])." ";}queries_redirect(substr(ME,0,-1),$D,$J);}page_header(($_GET["ns"]==""?lang(33).": ".h(DB):lang(249).": ".h($_GET["ns"])),$l,true);if($b->homepage()){if($_GET["ns"]!==""){echo"".lang(250)."\n";$sg=tables_list();if(!$sg)echo"".lang(9)."\n";else{echo" \n",script("tableCheck();");}echo''.lang(70)."\n",(support("view")?''.lang(194)."\n":"");if(support("routine")){echo" ".lang(136)."\n";$Bf=routines();if($Bf){echo"\n",''.lang(176).' | '.lang(45).' | '.lang(211)." | | \n";odd('');foreach($Bf
as$L){$E=($L["SPECIFIC_NAME"]==$L["ROUTINE_NAME"]?"":"&name=".urlencode($L["ROUTINE_NAME"]));echo'',''.h($L["ROUTINE_NAME"]).'',' | '.h($L["ROUTINE_TYPE"]),' | '.h($L["DTD_IDENTIFIER"]),' | '.lang(129)."";}echo" | \n";}echo''.(support("procedure")?''.lang(210).'':'').''.lang(209)."\n";}if(support("event")){echo" ".lang(137)."\n";$M=get_rows("SHOW EVENTS");if($M){echo"\n","".lang(176)." | ".lang(266)." | ".lang(200)." | ".lang(201)." | | \n";foreach($M
as$L){echo"","".h($L["Name"])," | ".($L["Execute at"]?lang(267)." | ".$L["Execute at"]:lang(202)." ".$L["Interval value"]." ".$L["Interval field"]." | $L[Starts]")," | $L[Ends]",' | '.lang(129).'';}echo" | \n";$dc=$f->result("SELECT @@event_scheduler");if($dc&&$dc!="ON")echo"event_scheduler : ".h($dc)."\n";}echo'
'.lang(199)."\n";}if($sg)echo
script("ajaxSetHtml('".js_escape(ME)."script=db');");}}}page_footer(); |