Esempio n. 1
0
function db_table_serialize($db, $dbname)
{
    $tables = $db->fetchall('SHOW TABLES');
    if (empty($tables)) {
        return '';
    }
    $struct = array();
    foreach ($tables as $value) {
        $structs[] = db_table_schema($db, substr($value['Tables_in_' . $dbname], strpos($value['Tables_in_' . $dbname], '_') + 1));
    }
    return iserializer($structs);
}
Esempio n. 2
0
function cloud_schema()
{
    $pars = _cloud_build_params();
    $pars['method'] = 'application.schema';
    $dat = cloud_request('http://v2.addons.we7.cc/gateway.php', $pars);
    $file = IA_ROOT . '/data/application.schema';
    $ret = _cloud_shipping_parse($dat, $file);
    if (!is_error($ret)) {
        $schemas = array();
        if (!empty($ret['schemas'])) {
            load()->func('db');
            foreach ($ret['schemas'] as $remote) {
                $name = substr($remote['tablename'], 4);
                $local = db_table_schema(pdo(), $name);
                unset($remote['increment']);
                unset($local['increment']);
                if (empty($local)) {
                    $schemas[] = $remote;
                } else {
                    $diffs = db_schema_compare($local, $remote);
                    if (!empty($diffs)) {
                        $schemas[] = $remote;
                    }
                }
            }
        }
        $ret['schemas'] = $schemas;
    }
    return $ret;
}
Esempio n. 3
0
$packet['files'][] = "/stonefish_planting/template/userinfo.html";
$packet['files'][] = "/stonefish_planting/template/sharelist.html";
/*引导错误*/
$packet['files'][] = "/hx_donate/icon1111.jpg";
if ($step == 'schemas' && $_W['ispost']) {
    $post = $_GPC['__input'];
    $tablename = $post['table'];
    foreach ($packet['schemas'] as $schema) {
        if (substr($schema['tablename'], 4) == $tablename) {
            $remote = $schema;
            break;
        }
    }
    if (!empty($remote)) {
        load()->func('db');
        $local = db_table_schema(pdo(), $tablename);
        $sqls = db_table_fix_sql($local, $remote);
        $error = false;
        foreach ($sqls as $sql) {
            if (pdo_query($sql) === false) {
                $error = true;
                $errormsg .= pdo_debug(false);
                break;
            }
        }
        if (!$error) {
            exit('success');
        }
    }
    exit;
}
Esempio n. 4
0
         }
     }
     exit;
 }
 load()->model('cloud');
 $r = cloud_prepare();
 if (is_error($r)) {
     message($r['message'], url('cloud/profile'), 'error');
 }
 $upgrade = cloud_schema();
 $schemas = $upgrade['schemas'];
 if (!empty($schemas)) {
     load()->func('db');
     foreach ($schemas as $key => $value) {
         $tablename = substr($value['tablename'], 4);
         $struct = db_table_schema(pdo(), $tablename);
         if (!empty($struct)) {
             $temp = db_schema_compare($schemas[$key], $struct);
             $diff[$tablename]['name'] = $value['tablename'];
             if (!empty($temp['fields']['less'])) {
                 foreach ($temp['fields']['less'] as $key => $value) {
                     $diff[$tablename]['fields'][] = $value;
                 }
             }
             if (!empty($temp['indexes']['less'])) {
                 foreach ($temp['indexes']['less'] as $key => $value) {
                     $diff[$tablename]['indexes'][] = $value;
                 }
             }
         }
     }