Maison >développement back-end >tutoriel php >Méthode PHP pour intégrer les utilisateurs DISCUZ
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);
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('common_credit_rule_log'))) { return $this->tableprechu .$tablename; //tableprechu与上面修改对应就行; }else{ return $this->tablepre.$tablename; }
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
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!