Version: v2.3.0
Legen Sie los
Der Einstieg mit Medoo ist unkompliziert.
Anforderungen
- PHP 7.3+ mit installierter PDO Erweiterung.
- Eine SQL Datenbank wie MySQL, MSSQL, SQLite oder eine andere unterstützte Engine.
- Stellen Sie sicher, dass der entsprechende PDO Treiber installiert und aktiviert ist.
- Grundlegende SQL Kenntnisse.
Liste der PHP-PDO-Erweiterungen
Die folgende Liste zeigt, welche PDO Erweiterung basierend auf Ihrem Datenbanktyp und Ihrer Plattform installiert werden muss.
| Name | Treiber |
| 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 Treiberinstallation
Medoo erfordert PHP mit PDO-Unterstützung. Wenn PDO noch nicht installiert ist, befolgen Sie diese Schritte.
// Bearbeiten Sie php.ini und entfernen Sie das führende Semikolon bei der Datenbankerweiterung, die Sie aktivieren möchten. // .dll wird unter Windows verwendet. .so wird unter Linux/UNIX verwendet. // Vorher ;extension=php_pdo_mysql.dll ;extension=php_pdo_mysql.so // Nachher extension=php_pdo_mysql.dll extension=php_pdo_mysql.so // Speichern Sie die Datei und starten Sie dann PHP oder Apache/Nginx neu. // Wenn PDO korrekt installiert ist, erscheint es in phpinfo().
Oder vom Terminal aus installieren. Die Erweiterung PDO wird automatisch aktiviert und konfiguriert.
$ sudo apt-get install php7.4-mysql
Composer-Installation
Wenn Sie Composer verwenden, installieren Sie Medoo mit dem folgenden Befehl.
$ composer require catfan/medoo
Composer installiert die Abhängigkeit automatisch. Führen Sie
composer update nur aus, wenn Sie Abhängigkeiten manuell aktualisieren müssen.
$ composer update
Manuelle Installation
Eine einfache Alternative besteht darin,
medoo.php herunterzuladen, in Ihrem Projekt abzulegen und per require einzubinden.require 'Medoo.php';
Konfiguration
Übergeben Sie ein Konfigurationsarray, um Medoo zu initialisieren und eine Datenbankverbindung zu starten.
// Laden Sie den Autoloader von Composer. require 'vendor/autoload.php'; // Importieren Sie den Medoo-Namensraum. use Medoo\Medoo; $database = new Medoo([ // Erforderlich. 'type' => 'mysql', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', // Nicht erforderlich. 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_general_ci', 'port' => 3306, // Optional: Tabellenpraefix. Alle Tabellennamen werden zu PREFIX_table. 'prefix' => 'PREFIX_', // Optional: Protokollierung aktivieren. Standardmaessig deaktiviert fuer bessere Leistung. 'logging' => true, // Nicht erforderlich. // Fehlermodus. // Legt fest, wie PDO Fehler meldet. // PDO::ERRMODE_SILENT (Standard) | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION // Referenz: https://www.php.net/manual/en/pdo.error-handling.php. 'error' => PDO::ERRMODE_SILENT, // Nicht erforderlich. // Treiberoptionen fuer die Verbindung. // Referenz: https://www.php.net/manual/en/pdo.setattribute.php. 'option' => [ PDO::ATTR_CASE => PDO::CASE_NATURAL ], // Optional: Befehle, die nach dem Aufbau der Datenbankverbindung ausgefuehrt werden. 'command' => [ 'SET SQL_MODE=ANSI_QUOTES' ] ]);
Benutzerdefinierte DSN-Verbindung
Sie können auch einen benutzerdefinierten DSN bereitstellen, um Datenbanken zu verbinden, die Medoo standardmäßig nicht unterstützt, oder um zusätzliche DSN-Parameter zu übergeben.
DSN-Verbindungszeichenfolgenformat
{driver}:{key}={value};{key}={value}
$database = new Medoo([ 'dsn' => [ // Im DSN verwendeter PDO-Treibername. 'driver' => 'mydb', // DSN-Parameter als Schluessel-Wert-Paare. 'server' => '12.23.34.45', 'port' => '8886' ], // Optional: Gibt Medoo vor, welches datenbankspezifische Verhalten verwendet werden soll. 'type' => 'mysql', 'username' => 'your_username', 'password' => 'your_password' ]); // Endgueltig erzeugte DSN-Zeichenfolge: mydb:server=12.23.34.45;port=8886
Initialisierung mit PDO-Objekt
Sie können Medoo auch aus einem vorhandenen initialisierten PDO-Objekt erstellen.
$pdo = new PDO('mysql:dbname=test;host=127.0.0.1', 'user', 'password');
$database = new Medoo([
// Verwendet eine bereits initialisierte und verbundene PDO-Instanz erneut.
'pdo' => $pdo,
// Optional: Gibt Medoo vor, welches datenbankspezifische Verhalten verwendet werden soll.
'type' => 'mysql'
]);
Für MySQL
Diese Option gilt nur für MySQL.
$database = new Medoo([ // Optional: MySQL-Socket. Nicht zusammen mit server und port verwenden. 'socket' => '/tmp/mysql.sock', ]);
Für MariaDB
MariaDB wird genauso behandelt wie MySQL. Der Datenbanktyp wird automatisch
mysql zugeordnet.$database = new Medoo([ 'type' => 'mariadb', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', ]);
Für MSSQL
Moderne MSSQL-Verbindungen verwenden normalerweise die Erweiterung pdo_sqlsrv sowohl unter Windows als auch unter Linux/UNIX. Medoo verwendet standardmäßig den pdo_sqlsrv-Treiber. Legen Sie für ältere Umgebungen, die pdo_dblib erfordern, den Treiber explizit während der Initialisierung fest. Weitere Informationen finden Sie unter https://github.com/Microsoft/msphpsql.
$database = new Medoo([ 'type' => 'mssql', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', // Optional: Anwendungsname. 'appname' => 'test', // Nicht erforderlich. // Erzwingt die Verwendung des dblib-Treibers fuer MSSQL. // Standard: sqlsrv. 'driver' => 'dblib' ]);
Medoo unterstützt auch MSSQL Verbindungsoptionen bei Verwendung des sqlsrv-Treibers. Einzelheiten finden Sie unter 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', // Optional: MSSQL-Verbindungsoptionen. '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' ]);
Für SQLite
Dateidatenbank
$database = new Medoo([ 'type' => 'sqlite', 'database' => 'my/database/path/database.db' ]);
Speicherdatenbank
$database = new Medoo([ 'type' => 'sqlite', 'database' => ':memory:' ]);
Temporäre Datenbank
Die temporäre Datenbank wird gelöscht, wenn die Verbindung geschlossen wird.
$database = new Medoo([ 'type' => 'sqlite', 'database' => '' ]); // Oder lassen Sie die Option database ganz weg. $database = new Medoo([ 'type' => 'sqlite' ]);
DSN-Zeichenfolge debuggen
Sie können die endgültige DSN-Zeichenfolge überprüfen, indem Sie
info() aufrufen.$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
Testmodus
Dieser Modus ist für Tests nützlich. Sie können generierte SQL bis
$database->queryString über verschiedene Datenbanktypen hinweg überprüfen. Abfragen werden generiert, aber nicht ausgeführt.$database = new Medoo([
'testMode' => true
]);
// Legen Sie den Datenbanktyp fest.
$database->type = 'mysql';
$database->select("account", ["user_name"], ["user_id[>]" => 10]);
echo $database->queryString;