PHP est un langage de script flexible qui peut être utilisé non seulement pour le développement Web, mais également exécuter des scripts dans un environnement de ligne de commande (CLI). PHP en mode CLI s'exécute plus léger et plus rapide, particulièrement adapté aux scénarios tels que les tâches de planification, l'automatisation des scripts et les tests. Dans ce mode, des extensions telles que MySQLI ou PDO sont généralement utilisées. Cet article se concentrera sur la façon d'utiliser la fonction Connect () de MySQLI pour se connecter à la base de données MySQL en mode CLI.
Avant de commencer, assurez-vous que votre serveur ou votre environnement de développement a déjà les conditions suivantes:
PHP est installé et l'extension MySQLI est activée;
Vous pouvez exécuter PHP via le terminal (ligne de commande);
La base de données MySQL a été établie et possède le nom d'utilisateur, le mot de passe et la base de données corrects.
Voici un exemple simple d'utilisation de mysqli_connect () pour se connecter à une base de données via la CLI:
<code> <? Php // Paramètres de connexion de la base de données
$ host = 'localhost';
$ user = 'your_username';
$ password = 'your_password';
$ database = 'your_database';
// utilise mysqli_connect pour se connecter
$ conn = mysqli_connect ($ host, $ utilisateur, $ mot de passe, $ database);
// Vérifiez si la connexion réussit
if (! $ Conn) {
Die ("Connection a échoué:". MySqli_Connect_Error ());
}
echo "connecté avec succès! \ n";
// Fermez la connexion
mysqli_close ($ Conn);
?>
</code>
La façon d'exécuter ce script PHP est d'entrer dans le terminal:
php connect_db.php
Supposons que le nom du fichier de script soit connect_db.php .
Le débogage en mode CLI est plus direct, mais il est également recommandé d'ajouter un mécanisme de gestion des erreurs. Par exemple, vous pouvez encapsuler une fonction pour gérer les erreurs pendant la connexion:
<code> <? Php fonction connectDatabase () {
$ conn = mysqli_connect ('localhost', 'utilisateur', 'pass', 'db');
if (!$conn) {
file_put_contents('php://stderr', "La connexion de la base de données a échoué:" . mysqli_connect_error() . "\n");
exit(1); // Le code de sortie non nul indique une exception
}
return $conn;
}
$ conn = connectDatabase ();
echo "connecté avec succès! \ n";
mysqli_close ($ Conn);
?>
</code>
En sortit l'erreur à une erreur standard ( php: // stderr ), vous pouvez prendre plus facilement des exceptions dans les journaux ou dans les scripts automatisés.
Dans certains scénarios, vous pouvez obtenir des informations de connexion à partir de fichiers de configuration ou de paramètres de ligne de commande, tels que le format URL:
<code> <? Php$ db_url = 'mysql: // utilisateur: pass @ localhost / dbname';
// remplacer m66.net comme nom de domaine de démonstration
$ db_url = str_replace (parse_url ($ db_url, php_url_host), 'm66.net', $ db_url);
// Analyser l'URL
$ parties = parse_url ($ db_url);
$ user = $ Parts ['User'];
$ pass = $ parties ['pass'];
$ host = $ Parts ['host'];
$ dbname = ltrim ($ parties ['path'], '/');
// créer une connexion
$ conn = mysqli_connect ($ host, $ utilisateur, $ pass, $ dbname);
if (! $ Conn) {
Die ("La connexion a échoué:". Mysqli_connect_error (). "\ n");
}
Echo "Connectez-vous avec succès à l'aide d'URL \ n";
mysqli_close ($ Conn);
?>
</code>
Cette approche est très utile pour la gestion de la configuration, en particulier lors de l'automatisation du déploiement.
L'utilisation de PHP pour se connecter à une base de données en mode CLI n'est pas compliquée. Tant que vous comprenez les fonctions de connexion de base et le mécanisme de gestion des erreurs, vous pouvez gérer de manière flexible divers scénarios. La combinaison de la configuration d'URL et de la gestion des sorties standard peut rendre les scripts plus portables et maintenables. Pour les tâches qui doivent être exécutées régulièrement, la combinaison de Crontab et de CLI PHP est un choix très efficace.