Méthode PHP pour intégrer les utilisateurs DISCUZ

墨辰丷
Libérer: 2023-03-30 15:20:02
original
2180 Les gens l'ont consulté

Cet article présente principalement la méthode d'intégration des utilisateurs DISCUZ en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Il y a quelques jours, j'ai rencontré un projet qui nécessitait la fusion de deux disques. Un niveau d'utilisateur était d'environ 120 000 et l'autre de 18 000. Inutile de dire que le niveau de 10 080 utilisateurs a dû être jeté, laissant 120 000 de. . Cela a commencé à paraître difficile à gérer. Les tables de données sont toutes liées. Lorsqu'un nouvel utilisateur est enregistré, 8 tables ont ajouté des enregistrements. Je n'ai pas vérifié si d'autres tables avaient la possibilité de modifier des enregistrements. À ce moment-là, j'ai senti que je ne pouvais pas trier ces tableaux pendant un certain temps, alors je l'ai recherché et j'ai trouvé l'outil Discuz. Mais il ne pouvait importer que 100 000 éléments, j'ai donc dû l'essayer moi-même après y avoir réfléchi. dessus, j'ai directement inséré une ligne dans la table de clés. Quant à l'enregistrement, d'autres tables peuvent compléter automatiquement les données pertinentes lors de l'opération de l'utilisateur, j'ai donc essayé d'exporter les 18 000 utilisateurs d'origine, puis j'ai écrit un script PHP pour écrire directement le fichier. 18 000 utilisateurs dans l'uncenter Le membre à l'intérieur et à l'extérieur. Je l'ai testé et c'était OK. Malheureusement, aucun des points utilisateur ou quoi que ce soit n'a été transmis, seuls le nom d'utilisateur et le mot de passe de l'utilisateur ont été conservés.

Étapes clés :

1. Exportez la base de données des membres uncenter du système que vous prévoyez de ne pas utiliser dans un fichier SQL.

2. Exécutez le script.

Déclaration : ce script ne fournit que des idées. Veuillez sauvegarder les données à l'avance avant utilisation. Si des données sont perdues, l'auteur n'y est pour rien. (Le code est simple, ne vaporisez pas)

set_time_limit(0); 
$link = mysql_connect('localhost', 'ngjc', 'ohFt6yhHYvt5') 
 or die('Could not connect: ' . mysql_error()); 
echo 'Connected successfully'; 
mysql_select_db('ngjc') or die('Could not select database'); 
require "sql.php";//此处换成导出的sql文件 
$arrayerr=array(); 
$oknum=0; 
$errnum=0; 
mysql_query("SET NAMES utf8"); 
foreach($sqlarr as $sql) 
{ 
 if(!mysql_query($sql)) 
 { 
  $arrayerr[]=$sql;$errnum++; 
 } 
 else 
 { 
  $oknum++; 
 } 
} 
echo "<pre class="brush:php;toolbar:false">OK:$oknum <br>errornum:$errnum <br> error:<br>"; 
print_r($arrayerr); 
mysql_close($link);
Copier après la connexion

Jetons un coup d'œil à la méthode d'utilisation de l'intégration UC

J'utilise 2 disques ucenter et les systèmes d'adhésion au cours des deux derniers jours ;Après mes efforts inlassables, l'intégration a finalement été terminée ; après l'intégration, les fonctions sont les suivantes

Deux systèmes Discuz partagent le même ucenter ; //Méthode de mise en œuvre :

Deux systèmes Discuz partagent le même système ucenter Member ; ​​//La solution est plus tard

Intégrez d'abord ucenter ;

Installez d'abord complètement un système Discuz ; entrez ucenter ; ajoutez des applications :

Cliquez pour installer : passez à l'étape suivante ci-dessous

Si vous cliquez et les problèmes ci-dessus apparaissent, vous devez résoudre les problèmes ci-dessus avant que l'installation puisse continuer
Veuillez revenir pour saisir l'adresse IP de UCenter : Si tout va bien, passez à l'étape suivante

L'intégration d'ucenter est terminée ; vous pouvez vous connecter en même temps ; quitter en même temps ; seule la première activation est requise

Ouvrez config_global.php sous le config/ du deuxième sous-système ; ;

Dans $_config['db']['1']['tablepre'] = chuzi_';Ajouter $_config['db']['2' ]['tablepre'] = it_

Le deuxième sous-système ouvre db_driver_mysql.php sous le fichier sourceclassdb ;

Ajouter ci-dessous la ligne 34$this->tablepre = $config['1']['tablepre']; $this->tableprechu = $config[ '2']['tablepre'];
Ligne 112 renvoie $ this->tablepre.$tablename; est modifié comme suit

if(preg_match("/^common_member(.*)/i",$tablename)|| preg_match("/^home(.*)/i",$tablename) || in_array($tablename, array(&#39;common_credit_rule_log&#39;)))
    {
      return $this->tableprechu .$tablename; //tableprechu与上面修改对应就行;
    }else{
    return $this->tablepre.$tablename;
    }
Copier après la connexion

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun .

Recommandations associées :

Méthode ThinkPHP pour implémenter une requête multi-table et une fonction de pagination

Acquisition de l'implémentation PHP Méthodes du mois, ce mois-ci, des 15 derniers jours, des 30 derniers jours

PHP utilise preg_split et burst pour implémenter la méthode de fractionnement de la zone de texte pour stocker le contenu

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!