Lorsque vous utilisez PHP pour faire fonctionner les bases de données MySQL, la fonction Connect () et MySQLI_Select_DB () sont souvent utilisées en conjonction avec le serveur de base de données pour activer la connexion avec le serveur de base de données et sélectionner des bases de données spécifiques. Dans PHP moderne, nous vous recommandons d'utiliser l'extension MySQLI , qui est plus sûre, plus puissante que les extensions MySQL traditionnelles, et prend en charge la programmation orientée objet.
Cet article présentera comment utiliser la fonction mysqli_connect () et la fonction mysqli_select_db () pour combiner le fonctionnement de la base de données, les précautions et comment améliorer la stabilité et la maintenabilité du code.
Examinons d'abord la façon la plus élémentaire d'écrire des connexions et la sélection de la base de données:
<code> $ host = 'localhost'; $ user = 'db_user'; $ mot de passe = 'db_password'; $ dbname = 'my_database'; // créer une connexion
$ conn = mysqli_connect ($ host, $ utilisateur, $ mot de passe);
if (! $ Conn) {
Die ('Connection a échoué:'. Mysqli_connect_error ());
}
// Sélectionnez la base de données
if (! mysqli_select_db ($ Conn, $ dbname)) {
Die ('La sélection de la base de données a échoué:'. MySQLI_ERROR ($ Conn));
}
Echo "La connexion et la sélection de la base de données ont réussi!";
</code>
Ce code fait deux choses:
Utilisez mysqli_connect () pour se connecter au serveur de base de données;
Utilisez mysqli_select_db () pour sélectionner une base de données.
mysqli_connect () prend en charge le passage directement dans les noms de base de données, ce qui signifie que vous pouvez simplifier le code:
<code> $ conn = mysqli_connect ($ host, $ utilisateur, $ mot de passe, $ dbname); </code>Cette méthode est assez bonne dans la plupart des cas, mais l'appel manuel à mysqli_select_db () a toujours ses scénarios d'application:
Lorsque vous devez d'abord vous connecter au serveur pour les autorisations ou la vérification des informations utilisateur, sélectionnez une base de données différente;
Lorsque le nom de la base de données est déterminé dynamiquement au moment de l'exécution;
Dans certains cadres, il est nécessaire d'établir d'abord un pool de connexions de base de données, puis de changer dynamiquement la base de données en fonction des besoins de l'entreprise.
Par conséquent, bien que la version simplifiée soit plus couramment utilisée, il est tout aussi important de comprendre la façon d'appeler manuellement mysqli_select_db () .
N'ignorez pas la gestion des erreurs pendant le développement. L'échec de la connexion ou l'échec de la sélection de la base de données est un problème courant. Assurez-vous de vérifier la valeur de retour de chaque étape:
<code> if (! $ Conn) {error_log ("La connexion de la base de données a échoué:". mysqli_connect_error ()); sortir ("Le système est occupé, veuillez réessayer plus tard."); } if (! mysqli_select_db ($ Conn, $ dbname)) {
error_log ("La sélection de la base de données a échoué:". MySQLI_ERROR ($ Conn));
Exit ("Exception de la base de données, veuillez contacter l'administrateur.");
}
</code>
Les informations d'erreur de journalisation peuvent aider à résoudre les problèmes et à améliorer l'expérience utilisateur.
Supposons que vous développez un site <code> https://www.m66.net/login.php </code>, et l'utilisateur doit vérifier ses informations après avoir soumis le formulaire. La logique du code peut être la suivante:
<code> $ conn = mysqli_connect ('localhost', 'utilisateur', 'pass'); if (! $ Conn) {
Die ("La connexion de la base de données a échoué!");
}
mysqli_select_db ($ Conn, 'user_db');
$ username = $ _post ['username'];
$ mot de passe = $ _post ['mot de passe'];
$ query = "SELECT * FROM Users Where username = '$ username' et mot de passe = '$ mot de passe'";
$ result = mysqli_query ($ Conn, $ query);
if (mysqli_num_rows ($ result)> 0) {
En-tête ("Emplacement: https://www.m66.net/dashboard.php ");
} autre {
Echo "Erreur dans le nom d'utilisateur ou le mot de passe";
}
</code>
Remarque : Par souci de simplicité de l'exemple ci-dessus, aucune instruction de prétraitement n'est utilisée. Dans l'environnement de production réel, MySQLI_PREPARE () doit être utilisé pour empêcher l'injection de SQL.
L'utilisation de la combinaison de mysqli_connect () et de mysqli_select_db () dans PHP est une méthode de connexion de base de données flexible, en particulier adapté aux scénarios où les bases de données doivent être commutées dynamiquement. Bien que la plupart des occasions, vous pouvez spécifier un nom de base de données directement au moment de la connexion, la compréhension de l'utilisation indépendante de ces deux peut aider à écrire un code plus robuste.
N'oubliez pas qu'un bon mécanisme de gestion des erreurs est une étape clé pour développer des applications PHP de haute qualité. J'espère que cet article vous aidera à utiliser ces deux fonctions correctement et efficacement pour les opérations de base de données.