当前位置: 首页>>代码示例>>PHP>>正文


PHP XDB::rawExecute方法代码示例

本文整理汇总了PHP中XDB::rawExecute方法的典型用法代码示例。如果您正苦于以下问题:PHP XDB::rawExecute方法的具体用法?PHP XDB::rawExecute怎么用?PHP XDB::rawExecute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XDB的用法示例。


在下文中一共展示了XDB::rawExecute方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: handler_picture_token

 function handler_picture_token(PlPage $page, $size, $token)
 {
     XDB::rawExecute('DELETE FROM  profile_photo_tokens
                            WHERE  expires <= NOW()');
     $pid = XDB::fetchOneCell('SELECT  pid
                                 FROM  profile_photo_tokens
                                WHERE  token = {?}', $token);
     if ($pid != null) {
         $res = XDB::fetchOneAssoc('SELECT  attach, attachmime, x, y, last_update
                                      FROM  profile_photos
                                     WHERE  pid = {?}', $pid);
         $photo = PlImage::fromData($res['attach'], 'image/' . $res['attachmime'], $res['x'], $res['y'], $res['last_update']);
         $photo->send();
     } else {
         return PL_NOT_FOUND;
     }
 }
开发者ID:Ekleog,项目名称:platal,代码行数:17,代码来源:sharingapi.php

示例2: commit

 public function commit()
 {
     $values = array();
     $i = 0;
     foreach ($this->users as $user) {
         $values[] = XDB::format('({?}, {?}, {?}, NOW(), {?}, {?}, {?})', $user['uid'], $user['hruid'], $user['email'], rand_url_id(12), $this->user->fullName(), $this->group);
         if ($i == $this->limit) {
             XDB::rawExecute('INSERT INTO  register_pending_xnet (uid, hruid, email, date, hash, sender_name, group_name)
                                   VALUES  ' . implode(', ', $values));
             $i = 0;
             $values = array();
         } else {
             ++$i;
         }
     }
     XDB::rawExecute('INSERT INTO  register_pending_xnet (uid, hruid, email, date, hash, sender_name, group_name)
                           VALUES  ' . implode(', ', $values));
     return true;
 }
开发者ID:Ekleog,项目名称:platal,代码行数:19,代码来源:bulkaccounts.inc.php

示例3: preg_match

    preg_match($pattern, $data['private_name'], $matches);
    $has_ordinary = false;
    $count = count($matches);
    $update = array();
    $has_ordinary = update_main($data, $matches[1], $update);
    for ($i = 2; $i < $count; ++$i) {
        if (preg_match('/^\\((?:M|Mme) (.+)\\)$/', $matches[$i], $pieces)) {
            update_marital($data, $pieces[1], $update);
        } elseif (preg_match('/^\\((?:alias|autres prénoms :|autres noms :) .+\\)$/', $matches[$i], $pieces)) {
            update_private($data, $matches[$i], $data['pid'], $aliases, $perform_updates);
        } else {
            $has_ordinary = update_plain($data, $matches[$i], $update, $has_ordinary);
        }
    }
    if (count($update)) {
        $set = implode(', ', $update);
        if ($perform_updates) {
            XDB::rawExecute('UPDATE  profile_public_names
                                SET  ' . $set . '
                              WHERE  pid = ' . $data['pid']);
        } else {
            print $set . ' (for pid ' . $data['pid'] . ")\n";
        }
    }
}
if ($perform_updates) {
    print "\nUpdates done.\n";
} else {
    print "\nIf this seems correct, relaunch this script with option --perform-updates=YES.\n";
}
/* vim:set et sw=4 sts=4 ts=4: */
开发者ID:Ekleog,项目名称:platal,代码行数:31,代码来源:names.php

示例4: handler_user


//.........这里部分代码省略.........
             }
             if (Post::s('type') != $user->type) {
                 $to_update['type'] = Post::s('type');
             }
             if (Post::i('watch', 0) != ($user->watch ? 1 : 0)) {
                 $to_update['flags'] = new PlFlagset();
                 $to_update['flags']->addFlag('watch', Post::i('watch'));
             }
             if (Post::t('comment') != $user->comment) {
                 $to_update['comment'] = Post::blank('comment') ? null : Post::t('comment');
             }
             $new_email = strtolower(Post::t('email'));
             if (require_email_update($user, $new_email)) {
                 $to_update['email'] = $new_email;
                 $listClient->change_user_email($user->forlifeEmail(), $new_email);
                 update_alias_user($user->forlifeEmail(), $new_email);
             }
         }
     }
     if (!empty($to_update)) {
         $res = XDB::query('SELECT  *
                              FROM  accounts
                             WHERE  uid = {?}', $user->id());
         $oldValues = $res->fetchAllAssoc();
         $oldValues = $oldValues[0];
         $set = array();
         $diff = array();
         foreach ($to_update as $k => $value) {
             $value = XDB::format('{?}', $value);
             $set[] = $k . ' = ' . $value;
             $diff[$k] = array($oldValues[$k], trim($value, "'"));
             unset($oldValues[$k]);
         }
         XDB::rawExecute('UPDATE  accounts
                             SET  ' . implode(', ', $set) . '
                           WHERE  uid = ' . XDB::format('{?}', $user->id()));
         $page->trigSuccess('Données du compte mise à jour avec succès');
         $user = User::getWithUID($user->id());
         /* Formats the $diff and send it to the site administrators. The rules are the folowing:
          *  -formats: password, token, weak_password
          */
         foreach (array('password', 'token', 'weak_password') as $key) {
             if (isset($diff[$key])) {
                 $diff[$key] = array('old value', 'new value');
             } else {
                 $oldValues[$key] = 'old value';
             }
         }
         $mail = new PlMailer('admin/useredit.mail.tpl');
         $mail->assign('admin', S::user()->hruid);
         $mail->assign('hruid', $user->hruid);
         $mail->assign('diff', $diff);
         $mail->assign('oldValues', $oldValues);
         $mail->send();
     }
     // }}}
     // Profile form {{{
     if (Post::has('add_profile') || Post::has('del_profile') || Post::has('owner')) {
         if (Post::i('del_profile', 0) != 0) {
             XDB::execute('DELETE FROM  account_profiles
                                 WHERE  uid = {?} AND pid = {?}', $user->id(), Post::i('del_profile'));
             XDB::execute('DELETE FROM  profiles
                                 WHERE  pid = {?}', Post::i('del_profile'));
         } else {
             if (!Post::blank('new_profile')) {
                 $profile = Profile::get(Post::t('new_profile'));
开发者ID:Ekleog,项目名称:platal,代码行数:67,代码来源:admin.php

示例5: save

 public function save(ProfilePage $page, $field, $value)
 {
     $deletePrivate = S::user()->isMe($page->owner) || S::admin();
     XDB::execute('DELETE FROM  pj, pjt
                         USING  profile_job      AS pj
                     LEFT JOIN  profile_job_term AS pjt ON (pj.pid = pjt.pid AND pj.id = pjt.jid)
                         WHERE  pj.pid = {?}' . ($deletePrivate ? '' : ' AND pj.pub IN (\'public\', \'ax\')'), $page->pid());
     Address::deleteAddresses($page->pid(), Address::LINK_JOB, null, null, $deletePrivate);
     Phone::deletePhones($page->pid(), Phone::LINK_JOB, null, $deletePrivate);
     $previous_requests = EntrReq::get_typed_requests($page->pid(), 'entreprise');
     foreach ($previous_requests as $request) {
         $request->clean();
     }
     $terms_values = array();
     foreach ($value as $id => &$job) {
         if (($job['pub'] != 'private' || $deletePrivate) && (isset($job['name']) && $job['name'])) {
             if (isset($job['jobid']) && $job['jobid']) {
                 XDB::execute('INSERT INTO  profile_job (pid, id, description, email, entry_year,
                                                         url, pub, email_pub, jobid)
                                    VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', $page->pid(), $id, $job['description'], $job['w_email'], $job['w_entry_year'], $job['w_url'], $job['pub'], $job['w_email_pub'], $job['jobid']);
             } else {
                 XDB::execute('INSERT INTO  profile_job (pid, id, description, email, entry_year,
                                                         url, pub, email_pub)
                                    VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', $page->pid(), $id, $job['description'], $job['w_email'], $job['w_entry_year'], $job['w_url'], $job['pub'], $job['w_email_pub']);
                 $request = new EntrReq(S::user(), $page->profile, $id, $job['name'], $job['hq_acronym'], $job['hq_url'], $job['hq_email'], $job['hq_fixed'], $job['hq_fax'], $job['hq_address']);
                 $request->submit();
                 sleep(1);
             }
             $address = new Address(array_merge($job['w_address'], array('pid' => $page->pid(), 'id' => $id, 'type' => Address::LINK_JOB)));
             $address->save();
             Phone::savePhones($job['w_phone'], $page->pid(), Phone::LINK_JOB, $id);
             if (isset($job['terms'])) {
                 foreach ($job['terms'] as $term) {
                     $terms_values[] = XDB::format('({?}, {?}, {?}, {?})', $page->pid(), $id, $term['jtid'], "original");
                 }
             }
         }
     }
     if (count($terms_values) > 0) {
         XDB::rawExecute('INSERT INTO  profile_job_term (pid, jid, jtid, computed)
                               VALUES  ' . implode(', ', $terms_values) . '
              ON DUPLICATE KEY UPDATE  computed = VALUES(computed)');
     }
     if (S::user()->isMe($page->owner) && count($value) > 1) {
         Platal::page()->trigWarning('Attention, tu as plusieurs emplois sur ton profil. Pense à supprimer ceux qui sont obsolètes.');
     }
 }
开发者ID:Ekleog,项目名称:platal,代码行数:47,代码来源:jobs.inc.php

示例6: save

 public function save(ProfilePage $page, $field, $value)
 {
     require_once 'name.func.inc.php';
     $old = XDB::fetchOneAssoc('SELECT  lastname_main, lastname_marital, lastname_ordinary,
                                        firstname_main, firstname_ordinary, pseudonym
                                  FROM  profile_public_names
                                 WHERE  pid = {?}', $page->pid());
     if ($has_diff = $this->diff($page->pid(), $old, $value['public_names'])) {
         $new_names = new NamesReq(S::user(), $page->profile, $value['public_names'], $old);
         $new_names->submit();
         Platal::page()->assign('validation', true);
         Platal::page()->trigWarning('La demande de modification des noms a bien été prise en compte.' . ' Un email sera envoyé dès que ces changements auront été effectués.');
     }
     XDB::execute('DELETE FROM  profile_private_names
                         WHERE  pid = {?}', $page->pid());
     $values = array();
     $nickname = $lastname = $firstname = 0;
     if (isset($value['private_names'])) {
         foreach ($value['private_names'] as $name) {
             $values[] = XDB::format('({?}, {?}, {?}, {?})', $page->pid(), $name['type'], ${$name}['type']++, $name['name']);
         }
     }
     if (count($values)) {
         XDB::rawExecute('INSERT INTO  profile_private_names (pid, type, id, name)
                               VALUES  ' . implode(',', $values));
     }
     if ($has_diff) {
         update_display_names($page->profile, $old, $value['private_names']);
     } else {
         update_display_names($page->profile, $value['public_names'], isset($value['private_names']) ? $value['private_names'] : null);
     }
 }
开发者ID:Ekleog,项目名称:platal,代码行数:32,代码来源:general.inc.php

示例7: rebuildSearchTokens

 public static function rebuildSearchTokens($pids, $transaction = true)
 {
     require_once 'name.func.inc.php';
     if (!is_array($pids)) {
         $pids = array($pids);
     }
     $keys = XDB::iterator("(SELECT  pid, name, type, IF(type = 'nickname', 2, 1) AS score, '' AS public\n                                  FROM  profile_private_names\n                                 WHERE  pid IN {?})\n                                UNION\n                               (SELECT  pid, lastname_main, 'lastname' AS type, 10 AS score, 'public' AS public\n                                  FROM  profile_public_names\n                                 WHERE  lastname_main != '' AND pid IN {?})\n                                UNION\n                               (SELECT  pid, lastname_marital, 'lastname' AS type, 10 AS score, 'public' AS public\n                                  FROM  profile_public_names\n                                 WHERE  lastname_marital != '' AND pid IN {?})\n                                UNION\n                               (SELECT  pid, lastname_ordinary, 'lastname' AS type, 10 AS score, 'public' AS public\n                                  FROM  profile_public_names\n                                 WHERE  lastname_ordinary != '' AND pid IN {?})\n                                UNION\n                               (SELECT  pid, firstname_main, 'firstname' AS type, 10 AS score, 'public' AS public\n                                  FROM  profile_public_names\n                                 WHERE  firstname_main != '' AND pid IN {?})\n                                UNION\n                               (SELECT  pid, firstname_ordinary, 'firstname' AS type, 10 AS score, 'public' AS public\n                                  FROM  profile_public_names\n                                 WHERE  firstname_ordinary != '' AND pid IN {?})\n                                UNION\n                               (SELECT  pid, pseudonym, 'nickname' AS type, 10 AS score, 'public' AS public\n                                  FROM  profile_public_names\n                                 WHERE  pseudonym != '' AND pid IN {?})", $pids, $pids, $pids, $pids, $pids, $pids, $pids);
     $names = array();
     while ($key = $keys->next()) {
         if ($key['name'] == '') {
             continue;
         }
         $pid = $key['pid'];
         $toks = split_name_for_search($key['name']);
         $toks = array_reverse($toks);
         /* Split the score between the tokens to avoid the user to be over-rated.
          * Let says my user name is "Machin-Truc Bidule" and I also have a user named
          * 'Machin Truc'. Distributing the score force "Machin Truc" to be displayed
          * before "Machin-Truc" for both "Machin Truc" and "Machin" searches.
          */
         $eltScore = ceil((double) $key['score'] / (double) count($toks));
         $token = '';
         foreach ($toks as $tok) {
             $token = $tok . $token;
             $names["{$pid}-{$token}"] = XDB::format('({?}, {?}, {?}, {?}, {?}, {?})', $token, $pid, soundex_fr($token), $eltScore, $key['public'], $key['type']);
         }
     }
     if ($transaction) {
         XDB::startTransaction();
     }
     XDB::execute('DELETE FROM  search_name
                         WHERE  pid IN {?}', $pids);
     if (count($names) > 0) {
         XDB::rawExecute('INSERT INTO  search_name (token, pid, soundex, score, flags, general_type)
                               VALUES  ' . implode(', ', $names));
     }
     if ($transaction) {
         XDB::commit();
     }
 }
开发者ID:Ekleog,项目名称:platal,代码行数:40,代码来源:profile.php

示例8: ON

// Do not store backtraces.
$it = XDB::iterator('SELECT  gl.language, gc.country, gc.iso_3166_1_a2
                       FROM  geoloc_languages AS gl
                 INNER JOIN  geoloc_countries AS gc ON (gl.iso_3166_1_a2 = gc.iso_3166_1_a2)');
echo $it->total() . " pays à remplir.\n";
while ($item = $it->next()) {
    if ($item['language'] != 'fr') {
        $address = new Address(array('text' => $item['country']));
        $gmapsGeocoder = new GMapsGeocoder();
        $gmapsGeocoder->getGeocodedAddress($address, $item['language'], true);
        $country = $address->country;
    } else {
        $country = $item['country'];
    }
    $countryPlain = mb_strtoupper(replace_accent($country));
    XDB::execute('UPDATE  geoloc_languages
                     SET  country = {?}, countryPlain = {?}
                   WHERE  iso_3166_1_a2 = {?} AND language = {?}', $country, $countryPlain, $item['iso_3166_1_a2'], $item['language']);
    sleep(1);
}
$it = XDB::rawIterator('SELECT  country, iso_3166_1_a2
                          FROM  geoloc_countries');
echo $it->total() . " pays à simplifier.\n";
while ($item = $it->next()) {
    XDB::execute('UPDATE  geoloc_countries
                     SET  countryPlain = {?}
                   WHERE  iso_3166_1_a2 = {?}', mb_strtoupper(replace_accent($item['country'])), $item['iso_3166_1_a2']);
}
// Fixes geocoding errors.
XDB::rawExecute("REPLACE INTO  geoloc_languages (iso_3166_1_a2, language, country, countryPlain)\n                       VALUES  ('FM', 'en', 'Federated States of Micronesia', 'FEDERATED STATES OF MICRONESIA'),\n                               ('MH', 'en', 'Republic of the Marshall Islands', 'REPUBLIC OF THE MARSHALL ISLANDS'),\n                               ('PS', 'ar', 'دولة فلسطين', 'دولة فلسطين'),\n                               ('SB', 'en', 'Solomon Islands', 'SOLOMON ISLANDS'),\n                               ('TW', 'zh-CN', '台湾', '台湾'),\n                               ('TW', 'zh-TW', '台灣', '台灣'),\n                               ('CZ', 'cs', 'Česká Republika', 'CESKA REPUBLIKA'),\n                               ('CZ', 'sk', 'Česká Republika', 'CESKA REPUBLIKA'),\n                               ('DO', 'es', 'República Dominicana', 'REPUBLICA DOMINICANA'),\n                               ('GD', 'en', 'Grenada', 'GRENADA'),\n                               ('MD', 'ro', 'Republica Moldova', 'REPUBLICA MOLDOVA'),\n                               ('RU', 'ru', 'Россия', 'Россия'),\n                               ('SK', 'sk', 'Slovenská Republika', 'SLOVENSKA REPUBLIKA'),\n                               ('TZ', 'en', 'United Republic of Tanzania', 'UNITED REPUBLIC OF TANZANIA')");
/* vim:set et sw=4 sts=4 ts=4: */
开发者ID:Ekleog,项目名称:platal,代码行数:31,代码来源:geocoding.php

示例9: handler_admin_member_new

 function handler_admin_member_new($page, $email = null)
 {
     global $globals;
     $page->changeTpl('xnetgrp/membres-add.tpl');
     $page->addJsLink('xnet_members.js');
     if (is_null($email)) {
         return;
     }
     S::assert_xsrf_token();
     $suggest_account_activation = false;
     // FS#703 : $_GET is urldecoded twice, hence
     // + (the data) => %2B (in the url) => + (first decoding) => ' ' (second decoding)
     // Since there can be no spaces in emails, we can fix this with :
     $email = str_replace(' ', '+', $email);
     $is_valid_email = isvalid_email($email);
     // X not registered to main site.
     if (Env::v('x') && Env::i('userid') && $is_valid_email) {
         $user = User::getSilentWithUID(Env::i('userid'));
         if (!$user) {
             $page->trigError('Utilisateur invalide.');
             return;
         }
         // User has an account but is not yet registered.
         if ($user->state == 'pending') {
             // Add email in account table.
             XDB::query('UPDATE  accounts
                            SET  email = {?}
                          WHERE  uid = {?} AND email IS NULL', $email, $user->id());
             // Add email for marketing if required.
             if (Env::v('marketing')) {
                 $market = Marketing::get($user->uid, $email);
                 if (!$market) {
                     $market = new Marketing($user->uid, $email, 'group', $globals->asso('nom'), Env::v('marketing_from'), S::v('uid'));
                     $market->add();
                 }
             }
         } elseif (Env::v('broken')) {
             // Add email for broken if required.
             $valid = new BrokenReq(S::user(), $user, $email, 'Groupe : ' . $globals->asso('nom'));
             $valid->submit();
         }
     } else {
         $user = User::getSilent($email);
         // Wrong email and no user: failure.
         if (is_null($user) && (!$is_valid_email || !User::isForeignEmailAddress($email))) {
             $page->trigError('«&nbsp;<strong>' . $email . '</strong>&nbsp;» n\'est pas une adresse email valide.');
             return;
         }
         // Deals with xnet accounts.
         if (is_null($user) || $user->type == 'xnet') {
             // User is of type xnet. There are 3 possible cases:
             //  * the email is not known yet: we create a new account and
             //      propose to send an email to the user so he can activate
             //      his account,
             //  * the email is known but the user was not contacted in order to
             //      activate yet: we propose to send an email to the user so he
             //      can activate his account,
             //  * the email is known and the user was already contacted or has
             //      an active account: nothing to be done.
             list($mbox, $domain) = explode('@', strtolower($email));
             $hruid = User::makeHrid($mbox, $domain, 'ext');
             // User might already have an account (in another group for example).
             $user = User::getSilent($hruid);
             // If the user has no account yet, creates new account: build names from email address.
             if (empty($user)) {
                 require_once 'name.func.inc.php';
                 $parts = explode('.', $mbox);
                 if (count($parts) == 1) {
                     $lastname = $display_name = capitalize_name($mbox);
                     $firstname = '';
                 } else {
                     $display_name = $firstname = capitalize_name($parts[0]);
                     $lastname = capitalize_name(implode(' ', array_slice($parts, 1)));
                 }
                 $full_name = build_full_name($firstname, $lastname);
                 $directory_name = build_directory_name($firstname, $lastname);
                 $sort_name = build_sort_name($firstname, $lastname);
                 XDB::execute('INSERT INTO  accounts (hruid, display_name, full_name, directory_name, sort_name,
                                                      firstname, lastname, email, type, state)
                                    VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, \'xnet\', \'disabled\')', $hruid, $display_name, $full_name, $directory_name, $sort_name, $firstname, $lastname, $email);
                 $user = User::getSilent($hruid);
             }
             $suggest_account_activation = $this->suggest($user);
         }
     }
     if ($user) {
         // First check if the user used to be in this group.
         XDB::rawExecute('DELETE FROM  group_former_members
                                WHERE  remember AND DATE_SUB(NOW(), INTERVAL 1 YEAR) > unsubsciption_date');
         $former_member = XDB::fetchOneCell('SELECT  remember
                                               FROM  group_former_members
                                              WHERE  uid = {?} AND asso_id = {?}', $user->id(), $globals->asso('id'));
         if ($former_member === 1) {
             $page->trigError($user->fullName() . ' est un ancien membre du groupe qui ne souhaite pas y revenir. S\'il souhaite revenir dans le groupe, il faut qu\'il en fasse la demande sur la page d\'accueil du groupe.');
             return;
         } elseif (!is_null($former_member) && Post::i('force_continue') == 0) {
             $page->trigWarning($user->fullName() . ' est un ancien membre du groupe qui s\'est récemment désinscrit. Malgré cela, si tu penses qu\'il souhaite revenir, cliquer sur « Ajouter » l\'ajoutera bien au groupe cette fois.');
             $page->assign('force_continue', 1);
             return;
         }
//.........这里部分代码省略.........
开发者ID:Ekleog,项目名称:platal,代码行数:101,代码来源:xnetgrp.php

示例10: ON

XDB::rawExecute('UPDATE  fusionax_formations           AS f
              LEFT JOIN  profile_education_enum        AS pe ON (pe.name = f.Intitule_formation)
              LEFT JOIN  profile_education_degree_enum AS pd ON (pd.abbreviation = f.Intitule_diplome)
              LEFT JOIN  profile_education_field_enum  AS pf ON (pf.field = f.Descr_formation)
                    SET  f.eduid = pe.id, f.degreeid = pd.id, f.fieldid = pf.id');
XDB::rawExecute('ALTER TABLE profile_education_enum DROP INDEX name');
XDB::rawExecute('ALTER TABLE profile_education_degree_enum DROP INDEX abbreviation');
// Updates non complete educations.
XDB::rawExecute("UPDATE  profile_education             AS e\n             INNER JOIN  fusionax_formations           AS f  ON (f.pid = e.pid)\n             INNER JOIN  profile_education_degree_enum AS pd ON (e.degreeid = pd.id)\n             INNER JOIN  profile_education_degree_enum AS fd ON (f.degreeid = fd.id)\n                    SET  e.eduid = f.eduid\n                  WHERE  NOT FIND_IN_SET('primary', e.flags) AND e.eduid IS NULL AND pd.level = fd.level");
XDB::rawExecute("UPDATE  profile_education   AS e\n             INNER JOIN  fusionax_formations AS f ON (f.pid = e.pid)\n                    SET  e.degreeid = f.degreeid\n                  WHERE  NOT FIND_IN_SET('primary', e.flags) AND e.degreeid IS NULL AND e.eduid = f.eduid");
// Deletes duplicates.
XDB::rawExecute("DELETE  f\n                   FROM  fusionax_formations           AS f\n             INNER JOIN  profile_education_degree_enum AS fd ON (fd.abbreviation = f.Intitule_diplome)\n             INNER JOIN  profile_education             AS e  ON (e.pid = f.pid AND NOT FIND_IN_SET('primary', e.flags))\n             INNER JOIN  profile_education_degree_enum AS pd ON (pd.id = e.degreeid)\n                  WHERE  f.eduid = e.eduid AND fd.level = pd.level");
// Updates merge_issues table.
XDB::rawExecute("UPDATE  profile_merge_issues AS pm\n             INNER JOIN  fusionax_formations  AS f ON (f.pid = pm.pid)\n                    SET  pm.issues = IF(pm.issues, CONCAT(pm.issues, ',', 'education'), 'education')");
XDB::rawExecute("INSERT IGNORE INTO  profile_merge_issues (pid, issues)\n                             SELECT  pid, 'education'\n                               FROM  fusionax_formations");
$id = 0;
$continue = 1;
while ($continue > 0) {
    XDB::rawExecute("INSERT IGNORE INTO  profile_education (id, pid, eduid, degreeid, fieldid, program)\n                                 SELECT  {$id}, pid, eduid, degreeid, fieldid, Descr_formation\n                                   FROM  fusionax_formations");
    XDB::rawExecute("DELETE  f\n                       FROM  fusionax_formations AS f\n                 INNER JOIN  profile_education   AS pe ON (pe.pid = f.pid AND pe.id = {$id})\n                      WHERE  (pe.eduid = f.eduid OR (pe.eduid IS NULL AND f.eduid IS NULL))\n                             AND (pe.degreeid = f.degreeid OR (pe.degreeid IS NULL AND f.degreeid IS NULL))\n                             AND (pe.fieldid = f.fieldid OR (pe.fieldid IS NULL AND f.fieldid IS NULL))\n                             AND (pe.program = f.Descr_formation OR (pe.program IS NULL AND f.Descr_formation IS NULL))");
    $continue = XDB::affectedRows();
    ++$id;
}
// Updates merge_issues table (eduid and degreeid should never be empty).
XDB::rawExecute("UPDATE  profile_merge_issues AS pm\n             INNER JOIN  profile_education    AS pe ON (pe.pid = pm.pid)\n                    SET  pm.issues = CONCAT(pm.issues, ',', 'education')\n                  WHERE  NOT FIND_IN_SET('education', pm.issues) AND (pe.eduid = '' OR pe.eduid IS NULL OR pe.degreeid = '' OR pe.degreeid IS NULL)");
XDB::rawExecute("INSERT IGNORE INTO  profile_merge_issues (pid, issues)\n                             SELECT  pid, 'education'\n                               FROM  profile_education\n                              WHERE  eduid = '' OR eduid IS NULL OR degreeid = '' OR degreeid IS NULL");
XDB::rawExecute('DROP TABLE IF EXISTS fusionax_formations');
echo "Educations inclusions finished.\n";
echo "All inclusions are done.\n";
XDB::commit();
/* vim:set et sw=4 sts=4 ts=4: */
开发者ID:Ekleog,项目名称:platal,代码行数:31,代码来源:merge.php


注:本文中的XDB::rawExecute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。