thinkphp peut configurer une nouvelle base de données séparément. La méthode de configuration est la suivante : 1. Ajoutez des paramètres de configuration tels que "'DB_HOST' => 'localhost'..." dans le fichier de configuration de l'application ou le fichier de configuration du module ; Les informations de configuration de base de données indépendantes sont définies dans le fichier de configuration d'état ; 3. Spécifiez les informations de connexion à la base de données lors de l'instanciation, avec une syntaxe telle que "$User = M('User','other_','mysql://root...".
L'environnement d'exploitation de ce tutoriel : système Windows 7, ThinkPHP version 5, ordinateur Dell G3
Thinkphp peut-il configurer une nouvelle base de données indépendamment ?
Oui
Modèle Thinkphp - connecter la base de données. pour configurer indépendamment la connexion à la base de données modèle.
Connectez-vous à la base de données
ThinkPHP dispose d'une couche d'accès à la base de données abstraite intégrée, qui encapsule différentes opérations de base de données. Nous n'avons besoin que d'utiliser la classe publique Db pour fonctionner sans écrire différents codes et implémentations sous-jacentes. pour différentes bases de données. La classe Db appellera automatiquement le pilote de base de données correspondant pour le traitement. Les bases de données actuelles incluent Mysql, SqlServer, PgSQL, Sqlite, Oracle, Ibase et Mongo, et incluent également la prise en charge de PDO
Si l'application doit l'utiliser. une base de données, les informations de connexion à la base de données doivent être configurées. Il existe de nombreuses façons de définir les fichiers de configuration.
1. Définition de la configuration globale
La méthode de configuration courante consiste à ajouter les paramètres de configuration suivants dans le fichier de configuration de l'application ou le fichier de configuration du module :
//数据库配置信息'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'thinkphp', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '123456', // 密码 'DB_PORT' => 3306, // 端口 'DB_PREFIX' => 'think_', // 数据库表前缀 'DB_CHARSET'=> 'utf8', // 字符集
Le type de base de données est défini par le paramètre DB_TYPE. Voici les paramètres de base de données actuellement pris en charge :
Si DB_TYPE utilise le type PDO, le type de base de données est déterminé par la configuration DB_DSN
Ou utilisez le type de base de données. configuration suivante
'DB_DSN' => 'mysql://root:123456@localhost:3306/thinkphp#utf8'
L'utilisation de la définition du mode DB_DSN peut simplifier les paramètres de configuration. Le format du paramètre DSN est :
Type de base de données://nom d'utilisateur:mot de passe@adresse de la base de données:port de la base de données/nom de la base de données#Jeu de caractères
Le paramètre du jeu de caractères nécessite. version 3.2.1 ou supérieure pour être valide. Si le jeu de caractères n'est pas défini, la valeur par défaut est utf8. Si les deux paramètres de configuration existent en même temps, le paramètre de configuration DB_DSN est prioritaire
Remarque : si vous souhaitez configurer. une base de données distribuée, la configuration DB_DSN n'est pas prise en charge pour le moment.
Si vous utilisez le pilote PDO, vous devez d'abord configurer **DB_TYPE**, puis vous devez configurer d'autres paramètres séparément, tels que :
//PDO连接方式 'DB_TYPE' => 'pdo', // 数据库类型 'DB_USER' => 'root', // 用户名 'DB_PWD' => '', // 密码 'DB_PREFIX' => 'think_', // 数据库表前缀 'DB_DSN' => 'mysql:host=localhost;dbname=thinkphp;charset=UTF-8'
Remarque : le format de configuration DB_DSN du mode PDO est différent et les paramètres sont différents selon les différents types de bases de données. Pour plus de détails, veuillez vous référer au manuel PHP
La base de données définie par le fichier de configuration est généralement utilisée par. le système par défaut, car généralement la configuration d'accès à la base de données d'une application est la même. Dans cette méthode, le système l'obtiendra automatiquement lors de la connexion à la base de données, et il n'est pas nécessaire de se connecter manuellement.
Vous pouvez définir différentes informations de connexion à la base de données pour chaque module. Si le mode de débogage est activé, vous pouvez également définir des informations de configuration de base de données indépendantes dans les fichiers de configuration des différents états de l'application.
2. Définition de la classe de modèle
Si l'attribut de connexion est défini dans une classe de modèle, les informations de connexion à la base de données définies seront utilisées lors de l'instanciation du modèle personnalisé au lieu des informations de connexion par défaut définies dans le fichier de configuration. où certaines tables de données sont situées en dehors de la connexion actuelle à la base de données, comme :
//在模型里单独设置数据库连接信息 namespace Home\ Model; use Think\ Model; class UserModel extends Model{ protected $connection = array( 'db_type' => 'mysql', 'db_user' => 'root', 'db_pwd' => '1234', 'db_host' => 'localhost', 'db_port' => '3306', 'db_name' => 'thinkphp', 'db_charset' => 'utf8', ); }
Elle peut également être définie en mode DSN, comme :
//在模型里单独设置数据库连接信息 namespace Home\ Model; use Think\ Model; class UserModel extends Model{ //或者使用DSN定义 protected $connection = 'mysql://root:1234@localhost:3306/thinkphp#utf8'; }
Si nous avons configuré des informations supplémentaires de connexion à la base de données dans le fichier de configuration, par exemple :
//数据库配置1 'DB_CONFIG1' => array( 'db_type' => 'mysql', 'db_user' => 'root', 'db_pwd' => '1234', 'db_host' => 'localhost', 'db_port' => '3306', 'db_name' => 'thinkphp', 'db_charset'=> 'utf8', ), //数据库配置2 'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';
Ensuite, nous pouvons changer la définition d'attribut de la classe modèle en :
//在模型里单独设置数据库连接信息 namespace Home\ Model; use Think\ Model; class UserModel extends Model{ //调用配置文件中的数据库配置1 protected $connection = 'DB_CONFIG1'; } //在模型里单独设置数据库连接信息 namespace Home\ Model; use Think\ Model; class InfoModel extends Model{ //调用配置文件中的数据库配置1 protected $connection = 'DB_CONFIG2'; }
3. Définition d'instanciation
En plus de spécifier les informations de connexion à la base de données lors de la définition du modèle, nous pouvons également les spécifier lors de l'instanciation des informations de connexion à la base de données , par exemple : si la méthode M est utilisée pour instancier le modèle, différentes informations de connexion à la base de données peuvent également être transmises. Par exemple :
$User = M('User','other_','mysql://root:1234@localhost/demo#utf8');
signifie instancier le modèle User, et la connexion est à la table other_user de la base de données de démonstration, using Les informations de connexion sont configurées par le troisième paramètre. Si nous avons configuré DB_CONFIG2 dans le fichier de configuration du projet, nous pouvons également utiliser :
$User = M('User','other_','DB_CONFIG2');
Il convient de noter que la connexion à la base de données de ThinkPHP est paresseuse, elle ne se connecte donc pas à la base de données lorsqu'elle est instanciée, mais lorsqu'elle est réelle. ne sera connecté que lors de la manipulation des données (de plus, lorsque le système instancie le modèle pour la première fois, il se connectera automatiquement à la base de données pour obtenir les informations de champ de la table de données correspondant à la classe de modèle concernée).
Apprentissage recommandé : "
Tutoriel vidéo thinkPHP"
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!