Version: v2.3.0
Commencer
Démarrer avec Medoo est simple.
Exigences
- PHP 7.3+ avec l'extension PDO installée.
- Une base de données SQL telle que MySQL, MSSQL, SQLite ou un autre moteur pris en charge.
- Assurez-vous que le pilote PDO correspondant est installé et activé.
- Connaissances de base SQL.
Liste des extensions PHP PDO
La liste suivante indique quelle extension PDO installer en fonction de votre type de base de données et de votre plate-forme.
| Nom | Pilote |
| MySQL, MariaDB | php_pdo_mysql |
| MSSQL | php_pdo_sqlsrv / php_pdo_dblib |
| Oracle | php_pdo_oci |
| SQLite | php_pdo_sqlite |
| PostgreSQL | php_pdo_pgsql |
| Sybase | php_pdo_dblib |
PHP PDO Installation du pilote
Medoo nécessite PHP avec la prise en charge de PDO. Si PDO n'est pas encore installé, suivez ces étapes.
// Modifiez php.ini et supprimez le point-virgule initial de l'extension de base de données que vous souhaitez activer. // .dll est utilisé sous Windows. .so est utilisé sous Linux/UNIX. // Avant ;extension=php_pdo_mysql.dll ;extension=php_pdo_mysql.so // Après extension=php_pdo_mysql.dll extension=php_pdo_mysql.so // Enregistrez le fichier, puis redémarrez PHP ou Apache/Nginx. // Si PDO est installé correctement, il apparaîtra dans phpinfo().
Ou installez à partir du terminal. L'extension PDO sera activée et configurée automatiquement.
$ sudo apt-get install php7.4-mysql
Installation avec Composer
Si vous utilisez Composer, installez Medoo avec la commande suivante.
$ composer require catfan/medoo
Composer installe automatiquement la dépendance. Exécutez
composer update uniquement si vous devez actualiser les dépendances manuellement.
$ composer update
Installation manuelle
Une méthode simple consiste à télécharger
medoo.php, à le placer dans votre projet, puis à l’inclure avec require.require 'Medoo.php';
Configuration
Transmettez un tableau de configuration pour initialiser Medoo et démarrer une connexion à la base de données.
// Chargez l'autoloader de Composer. require 'vendor/autoload.php'; // Importez l'espace de noms Medoo. use Medoo\Medoo; $database = new Medoo([ // Obligatoire. 'type' => 'mysql', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', // Facultatif. 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_general_ci', 'port' => 3306, // Facultatif : prefixe de table. Tous les noms de table deviendront PREFIX_table. 'prefix' => 'PREFIX_', // Facultatif : activer la journalisation. Desactivee par defaut pour de meilleures performances. 'logging' => true, // Facultatif. // Mode de gestion des erreurs. // Definit comment PDO signale les erreurs. // PDO::ERRMODE_SILENT (par défaut) | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION // Reference : https://www.php.net/manual/en/pdo.error-handling.php. 'error' => PDO::ERRMODE_SILENT, // Facultatif. // Options du pilote pour la connexion. // Reference : https://www.php.net/manual/en/pdo.setattribute.php. 'option' => [ PDO::ATTR_CASE => PDO::CASE_NATURAL ], // Facultatif : commandes a executer une fois la connexion a la base etablie. 'command' => [ 'SET SQL_MODE=ANSI_QUOTES' ] ]);
Connexion DSN personnalisée
Vous pouvez également fournir un DSN personnalisé pour connecter des bases de données que Medoo ne prend pas en charge par défaut, ou pour transmettre des paramètres DSN supplémentaires.
Format de chaîne de connexion DSN
{pilote} :{key}={value} ;{key}={value}
$database = new Medoo([ 'dsn' => [ // Nom du pilote PDO utilisé dans le DSN. 'driver' => 'mydb', // Paramètres DSN sous forme de paires clé-valeur. 'server' => '12.23.34.45', 'port' => '8886' ], // Facultatif : indique à Medoo quel comportement spécifique à la base de données utiliser. 'type' => 'mysql', 'username' => 'your_username', 'password' => 'your_password' ]); // Chaîne DSN finale générée : mydb:server=12.23.34.45;port=8886
Initialisation à partir d'un objet PDO
Vous pouvez également créer Medoo à partir d'un objet PDO initialisé existant.
$pdo = new PDO('mysql:dbname=test;host=127.0.0.1', 'user', 'password');
$database = new Medoo([
// Réutilise une instance PDO déjà initialisée et connectée.
'pdo' => $pdo,
// Facultatif : indique à Medoo quel comportement spécifique à la base de données utiliser.
'type' => 'mysql'
]);
Pour MySQL
Cette option concerne uniquement MySQL.
$database = new Medoo([ // Facultatif : socket MySQL. Ne l'utilisez pas avec server et port en même temps. 'socket' => '/tmp/mysql.sock', ]);
Pour MariaDB
MariaDB est géré de la même manière que MySQL. Le type de base de données est automatiquement mappé sur
mysql.$database = new Medoo([ 'type' => 'mariadb', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', ]);
Pour MSSQL
Les connexions MSSQL modernes utilisent généralement l'extension pdo_sqlsrv sous Windows et Linux/UNIX. Medoo utilise le pilote pdo_sqlsrv par défaut. Pour les environnements existants qui nécessitent pdo_dblib, définissez explicitement le pilote lors de l'initialisation. Voir https://github.com/Microsoft/msphpsql pour plus de détails.
$database = new Medoo([ 'type' => 'mssql', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', // Facultatif : nom de l'application. 'appname' => 'test', // Facultatif. // Force Medoo à utiliser le pilote dblib pour MSSQL. // Par défaut : sqlsrv. 'driver' => 'dblib' ]);
Medoo prend également en charge les options de connexion MSSQL lors de l'utilisation du pilote sqlsrv. Voir les détails sur https://docs.microsoft.com/en-us/sql/connect/php/connection-options?view=sql-server-2017.
$database = new Medoo([ 'type' => 'mssql', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', // Facultatif : options de connexion MSSQL. 'application_intent' => 'ReadOnly', 'attach_db_file_name' => './database.sql', 'authentication' => 'SqlPassword', 'column_encryption' => 'Enabled', 'connection_pooling' => 1, 'encrypt' => 1, 'failover_partner' => 'MultiSubnetFailover', 'key_store_authentication' => 'KeyVaultPassword', 'key_store_principal_id' => 'AzureName', 'key_store_secret' => 'AzurePass', 'login_timeout' => '20', 'multiple_active_result_sets' => 1, 'multi_subnet_failover' => 'Yes', 'scrollable' => 'buffered', 'trace_file' => './path', 'trace_on' => 1, 'transaction_isolation' => PDO::SQLSRV_TXN_SNAPSHOT, 'transparent_network_ip_resolution' => 'Enabled', 'trust_server_certificate' => 1, 'wsid' => 'Computer1' ]);
Pour SQLite
Base de données de fichiers
$database = new Medoo([ 'type' => 'sqlite', 'database' => 'my/database/path/database.db' ]);
Base de données mémoire
$database = new Medoo([ 'type' => 'sqlite', 'database' => ':memory:' ]);
Base de données temporaire
La base de données temporaire est supprimée lorsque la connexion est fermée.
$database = new Medoo([ 'type' => 'sqlite', 'database' => '' ]); // Ou omettez complètement l'option database. $database = new Medoo([ 'type' => 'sqlite' ]);
Déboguer la chaîne DSN
Vous pouvez inspecter la chaîne DSN finale en appelant
info().$database = new Medoo([ 'type' => 'mysql', 'host' => '127.0.0.1', 'database' => 'test', 'username' => 'your_username', 'password' => 'your_password', ]); echo $database->info()['dsn']; // mysql:dbname=test;host=127.0.0.1
Mode Test
Ce mode est utile pour les tests. Vous pouvez vérifier SQL généré via
$database->queryString sur différents types de bases de données. Les requêtes sont générées mais non exécutées.$database = new Medoo([
'testMode' => true
]);
// Définissez le type de base de données.
$database->type = 'mysql';
$database->select("account", ["user_name"], ["user_id[>]" => 10]);
echo $database->queryString;