Beispiel #1
0
/**
 * セッションの編集
 *
 * @param array $queries
 * @param array $options
 *
 * @return resource
 */
function update_sessions($queries, $options = array())
{
    $queries = db_placeholder($queries);
    // 初期値を取得
    $defaults = default_sessions();
    if (isset($queries['set']['modified'])) {
        if ($queries['set']['modified'] === false) {
            unset($queries['set']['modified']);
        }
    } else {
        $queries['set']['modified'] = $defaults['modified'];
    }
    // データを編集
    $queries['update'] = DATABASE_PREFIX . 'sessions';
    $resource = db_update($queries);
    return $resource;
}
Beispiel #2
0
/**
 * Delete the data to the database.
 *
 * @param array $queries
 * @param bool  $return
 * @param bool  $error
 *
 * @return mixed
 */
function db_delete($queries, $return = false, $error = true)
{
    global $_db;
    if (DATABASE_TYPE === '') {
        return false;
    }
    $queries = db_placeholder($queries);
    if (isset($queries['delete_from']) && $queries['delete_from'] !== '') {
        $queries['delete_from'] = 'DELETE FROM ' . $queries['delete_from'] . ' ';
    } else {
        return false;
    }
    if (isset($queries['where']) && $queries['where'] !== '') {
        $queries['where'] = 'WHERE ' . $queries['where'] . ' ';
    } else {
        $queries['where'] = '';
    }
    if (isset($queries['offset']) && $queries['offset'] !== '') {
        $queries['offset'] = 'OFFSET ' . $queries['offset'] . ' ';
    } else {
        $queries['offset'] = '';
    }
    if (isset($queries['limit']) && $queries['limit'] !== '') {
        $queries['limit'] = 'LIMIT ' . $queries['limit'] . ' ';
    } else {
        $queries['limit'] = '';
    }
    if (isset($queries['option']) && $queries['option'] !== '') {
        $queries['option'] = $queries['option'] . ' ';
    } else {
        $queries['option'] = '';
    }
    $query = trim($queries['delete_from'] . $queries['where'] . $queries['offset'] . $queries['limit'] . $queries['option']) . ';';
    if ($return) {
        return $query;
    } else {
        return db_query($query, false, $error);
    }
}
Beispiel #3
0
/**
 * 名簿の削除
 *
 * @param array $queries
 * @param array $options
 *
 * @return resource
 */
function delete_members($queries, $options = array())
{
    $queries = db_placeholder($queries);
    $options = array('softdelete' => isset($options['softdelete']) ? $options['softdelete'] : true, 'category' => isset($options['category']) ? $options['category'] : false, 'file' => isset($options['file']) ? $options['file'] : false);
    // 削除するデータのIDを取得
    $members = db_select(array('select' => 'id', 'from' => DATABASE_PREFIX . 'members AS members', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
    $deletes = array();
    foreach ($members as $member) {
        $deletes[] = intval($member['id']);
    }
    if ($options['softdelete'] === true) {
        // データを編集
        $resource = db_update(array('update' => DATABASE_PREFIX . 'members AS members', 'set' => array('deleted' => localdate('Y-m-d H:i:s')), 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    } else {
        // データを削除
        $resource = db_delete(array('delete_from' => DATABASE_PREFIX . 'members AS members', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    }
    if ($options['category'] === true) {
        // 関連する分類を削除
        $resource = delete_category_sets(array('where' => 'member_id IN(' . implode(',', array_map('db_escape', $deletes)) . ')'));
        if (!$resource) {
            return $resource;
        }
    }
    if ($options['file'] === true) {
        // 関連するファイルを削除
        foreach ($deletes as $delete) {
            directory_rmdir($GLOBALS['config']['file_targets']['member'] . $delete . '/');
        }
    }
    return $resource;
}
Beispiel #4
0
/**
 * 教室の削除
 *
 * @param array $queries
 * @param array $options
 *
 * @return resource
 */
function delete_classes($queries, $options = array())
{
    $queries = db_placeholder($queries);
    $options = array('softdelete' => isset($options['softdelete']) ? $options['softdelete'] : true, 'associate' => isset($options['associate']) ? $options['associate'] : false, 'file' => isset($options['file']) ? $options['file'] : false);
    // 削除するデータのIDを取得
    $classes = db_select(array('select' => 'id', 'from' => DATABASE_PREFIX . 'classes AS classes', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
    $deletes = array();
    foreach ($classes as $class) {
        $deletes[] = intval($class['id']);
    }
    if ($options['associate'] === true) {
        // 関連するデータを削除
        $resource = delete_members(array('where' => 'class_id IN(' . implode($deletes) . ')'));
        if (!$resource) {
            return $resource;
        }
    }
    if ($options['softdelete'] === true) {
        // データを編集
        $resource = db_update(array('update' => DATABASE_PREFIX . 'classes AS classes', 'set' => array('deleted' => localdate('Y-m-d H:i:s'), 'code' => array('CONCAT(\'DELETED ' . localdate('YmdHis') . ' \', code)')), 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    } else {
        // データを削除
        $resource = db_delete(array('delete_from' => DATABASE_PREFIX . 'classes AS classes', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    }
    if ($options['file'] === true) {
        // 関連するファイルを削除
        foreach ($deletes as $delete) {
            directory_rmdir($GLOBALS['config']['file_targets']['class'] . $delete . '/');
        }
    }
    return $resource;
}
Beispiel #5
0
/**
 * ユーザの削除
 *
 * @param array $queries
 * @param array $options
 *
 * @return resource
 */
function delete_users($queries, $options = array())
{
    $queries = db_placeholder($queries);
    $options = array('softdelete' => isset($options['softdelete']) ? $options['softdelete'] : true, 'associate' => isset($options['associate']) ? $options['associate'] : false);
    // 削除するデータのIDを取得
    $users = db_select(array('select' => 'id', 'from' => DATABASE_PREFIX . 'users AS users', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
    $deletes = array();
    foreach ($users as $user) {
        $deletes[] = intval($user['id']);
    }
    if ($options['associate'] === true) {
        // 関連するデータを削除
        $resource = delete_profiles(array('where' => 'user_id IN(' . implode($deletes) . ')'));
        if (!$resource) {
            return $resource;
        }
    }
    if ($options['softdelete'] === true) {
        // データを編集
        $resource = db_update(array('update' => DATABASE_PREFIX . 'users AS users', 'set' => array('deleted' => localdate('Y-m-d H:i:s'), 'username' => array('CONCAT(\'DELETED ' . localdate('YmdHis') . ' \', username)'), 'email' => array('CONCAT(\'DELETED ' . localdate('YmdHis') . ' \', email)')), 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
    } else {
        // データを削除
        $resource = db_delete(array('delete_from' => DATABASE_PREFIX . 'users AS users', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
    }
    return $resource;
}
Beispiel #6
0
/**
 * プロフィールの削除
 *
 * @param array $queries
 * @param array $options
 *
 * @return resource
 */
function delete_profiles($queries, $options = array())
{
    $queries = db_placeholder($queries);
    $options = array('softdelete' => isset($options['softdelete']) ? $options['softdelete'] : true, 'associate' => isset($options['associate']) ? $options['associate'] : false);
    if ($options['softdelete'] === true) {
        // データを編集
        $resource = db_update(array('update' => DATABASE_PREFIX . 'profiles AS profiles', 'set' => array('deleted' => localdate('Y-m-d H:i:s')), 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    } else {
        // データを削除
        $resource = db_delete(array('delete_from' => DATABASE_PREFIX . 'profiles AS profiles', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    }
    return $resource;
}
Beispiel #7
0
/**
 * 分類の削除
 *
 * @param array $queries
 * @param array $options
 *
 * @return resource
 */
function delete_categories($queries, $options = array())
{
    $queries = db_placeholder($queries);
    $options = array('softdelete' => isset($options['softdelete']) ? $options['softdelete'] : true, 'associate' => isset($options['associate']) ? $options['associate'] : false);
    // 削除するデータのIDを取得
    $categories = db_select(array('select' => 'id', 'from' => DATABASE_PREFIX . 'categories AS categories', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
    $deletes = array();
    foreach ($categories as $category) {
        $deletes[] = intval($category['id']);
    }
    if ($options['associate'] === true) {
        // 関連するデータを削除
        $resource = delete_category_sets(array('where' => 'category_id IN(' . implode($deletes) . ')'));
        if (!$resource) {
            return $resource;
        }
    }
    if ($options['softdelete'] === true) {
        // データを編集
        $resource = db_update(array('update' => DATABASE_PREFIX . 'categories AS categories', 'set' => array('deleted' => localdate('Y-m-d H:i:s')), 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    } else {
        // データを削除
        $resource = db_delete(array('delete_from' => DATABASE_PREFIX . 'categories AS categories', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    }
    return $resource;
}