📄 db_mysql.inc.php
字号:
typeValue => Wert z.B. bei Varchar defaultValue => Default Wert notNull => true | false autoInc => true | false option => unique | primary | index) */ function createTable($table_name,$columns) { $index = ""; $sql = "CREATE TABLE $table_name ("; foreach($columns as $col){ $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." "; if($col["defaultValue"] != "") { if($col["defaultValue"] == "NULL" or $col["defaultValue"] == "NOT NULL") { $sql .= "DEFAULT ".$col["defaultValue"]." "; } else { $sql .= "DEFAULT '".$col["defaultValue"]."' "; } } elseif($col["defaultValue"] != false) { $sql .= "DEFAULT '' "; } if($col["defaultValue"] != "NULL" && $col["defaultValue"] != "NOT NULL") { if($col["notNull"] == true) { $sql .= "NOT NULL "; } else { $sql .= "NULL "; } } if($col["autoInc"] == true) $sql .= "auto_increment "; $sql.= ","; // key Definitionen if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),"; if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),"; if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),"; } $sql .= $index; $sql = substr($sql,0,-1); $sql .= ")"; $this->query($sql); return true; } /* $columns = array(action => add | alter | drop name => Spaltenname name_new => neuer Spaltenname, nur bei 'alter' belegt type => 42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob typeValue => Wert z.B. bei Varchar defaultValue => Default Wert notNull => true | false autoInc => true | false option => unique | primary | index) */ function alterTable($table_name,$columns) { $index = ""; $sql = "ALTER TABLE $table_name "; foreach($columns as $col){ if($col["action"] == 'add') { $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." "; } elseif ($col["action"] == 'alter') { $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." "; } elseif ($col["action"] == 'drop') { $sql .= "DROP ".$col["name"]." "; } if($col["action"] != 'drop') { if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' "; if($col["notNull"] == true) { $sql .= "NOT NULL "; } else { $sql .= "NULL "; } if($col["autoInc"] == true) $sql .= "auto_increment "; $sql.= ","; // key Definitionen if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),"; if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),"; if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),"; } } $sql .= $index; $sql = substr($sql,0,-1); //die($sql); $this->query($sql); return true; } function dropTable($table_name) { $this->check($table_name); $sql = "DROP TABLE '". $table_name."'"; return $this->query($sql); } // gibt Array mit Tabellennamen zur點k function getTables($database_name = '') { if($database_name == '') $database_name = $this->dbName; $result = mysql_list_tables($database_name); for ($i = 0; $i < mysql_num_rows($result); $i++) { $tb_names[$i] = mysql_tablename($result, $i); } return $tb_names; } // gibt Feldinformationen zur Tabelle zur點k /* $columns = array(action => add | alter | drop name => Spaltenname name_new => neuer Spaltenname, nur bei 'alter' belegt type => 42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob typeValue => Wert z.B. bei Varchar defaultValue => Default Wert notNull => true | false autoInc => true | false option => unique | primary | index) */ function tableInfo($table_name) { global $go_api,$go_info; // Tabellenfelder einlesen if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){ foreach($rows as $row) { $name = $row[0]; $default = $row[4]; $key = $row[3]; $extra = $row[5]; $isnull = $row[2]; $type = $row[1]; $column = array(); $column["name"] = $name; //$column["type"] = $type; $column["defaultValue"] = $default; if(stristr($key,"PRI")) $column["option"] = "primary"; if(stristr($isnull,"YES")) { $column["notNull"] = false; } else { $column["notNull"] = true; } if($extra == 'auto_increment') $column["autoInc"] = true; // Type in Metatype umsetzen if(stristr($type,"int(")) $metaType = 'int32'; if(stristr($type,"bigint")) $metaType = 'int64'; if(stristr($type,"char")) { $metaType = 'char'; $tmp_typeValue = explode('(',$type); $column["typeValue"] = substr($tmp_typeValue[1],0,-1); } if(stristr($type,"varchar")) { $metaType = 'varchar'; $tmp_typeValue = explode('(',$type); $column["typeValue"] = substr($tmp_typeValue[1],0,-1); } if(stristr($type,"text")) $metaType = 'text'; if(stristr($type,"double")) $metaType = 'double'; if(stristr($type,"blob")) $metaType = 'blob'; $column["type"] = $metaType; $columns[] = $column; } return $columns; } else { return false; } //$this->createTable('tester',$columns); /* $result = mysql_list_fields($go_info["server"]["db_name"],$table_name); $fields = mysql_num_fields ($result); $i = 0; $table = mysql_field_table ($result, $i); while ($i < $fields) { $name = mysql_field_name ($result, $i); $type = mysql_field_type ($result, $i); $len = mysql_field_len ($result, $i); $flags = mysql_field_flags ($result, $i); print_r($flags); $columns = array(name => $name, type => "", defaultValue => "", isnull => 1, option => ""); $returnvar[] = $columns; $i++; } */ } function mapType($metaType,$typeValue) { global $go_api; $metaType = strtolower($metaType); switch ($metaType) { case 'int16': return 'smallint'; break; case 'int32': return 'int'; break; case 'int64': return 'bigint'; break; case 'double': return 'double'; break; case 'char': return 'char'; break; case 'varchar': if($typeValue < 1) die("Datenbank Fehler: F黵 diesen Datentyp ist eine L鋘genangabe notwendig."); return 'varchar('.$typeValue.')'; break; case 'text': return 'text'; break; case 'blob': return 'blob'; break; } } }?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -