Update database.php

This commit is contained in:
Namhyeon Go 2019-12-30 21:15:42 +09:00 committed by GitHub
parent bf91280b50
commit 7337955af3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -747,14 +747,23 @@ if(!check_function_exists("exec_db_table_create")) {
$_prefix = get_value_in_array("prefix", $options, ""); $_prefix = get_value_in_array("prefix", $options, "");
$_suffix = get_value_in_array("suffix", $options, ""); $_suffix = get_value_in_array("suffix", $options, "");
$_tablename = sprintf("%s%s%s", $_prefix, $tablename, $_suffix); $_tablename = sprintf("%s%s%s", $_prefix, $tablename, $_suffix);
$_tablename_p = sprintf("%s%s", $_prefix, $tablename);
$_tablename_s = sprintf("%s%s", $tablename, $_suffix);
$_tablename_t = sprintf("%s.tables", $_tablename_p);
// get index options // get index options
$config = get_config();
$setindex = get_value_in_array("setindex", $options, false); $setindex = get_value_in_array("setindex", $options, false);
// check if exists table // check if exists table
$sql = sprintf("describe %s", $_tablename); $bind = array(
if(exec_db_query($sql)) { "table_schema" => $config['db_name'],
return $_tablename; "table_name" => $_tablename
);
$sql = get_bind_to_sql_select("information_schema.tables", $bind);
$rows = exec_db_fetch_all($sql, $bind);
foreach($rows as $row) {
return $row['TABLE_NAME'];
} }
// create table // create table
@ -764,9 +773,32 @@ if(!check_function_exists("exec_db_table_create")) {
if(!exec_db_query($sql)) { if(!exec_db_query($sql)) {
return false; return false;
} else { } else {
if($_suffix != ".tables") {
// create meta table
$schemes_t = array(
"table_name" => array("varchar", 255),
"datetime" => array("datetime")
);
$_tablename_t = exec_db_table_create($schemes_t, $tablename, array(
"prefix" => $_prefix,
"suffix" => ".tables",
"setindex" => array(
"index_1" => array("datetime")
)
));
// add table name to meta table
$bind = array(
"table_name" => $_tablename,
"datetime" => get_current_datetime()
);
$sql = get_bind_to_sql_insert($_tablename_t, $bind);
exec_db_query($sql, $bind);
}
// create index // create index
foreach($setindex as $k=>$v) { foreach($setindex as $k=>$v) {
$sql = sprintf("create index `%s` on `%s` (%s)", $k, $tablename, implode(", ", $v)); $sql = sprintf("create index `%s` on `%s` (%s)", $k, $_tablename, implode(", ", $v));
exec_db_query($sql); exec_db_query($sql);
} }
} }