Start · Sprachen · PHP · Referenz · Swoole\MySQL

Swoole\MySQL

Klasse

Stellt Konstanten für den asynchronen Swoole-MySQL-Client bereit und dient als Basis für die MySQL-Kommunikation innerhalb des Swoole-Frameworks.

Kategorie: misc

Signatur

class Swoole\MySQL

Beschreibung

Swoole\MySQL ist eine Klasse innerhalb des Swoole-Frameworks, die primär Konstanten für den integrierten, asynchronen und coroutinenbasierten MySQL-Client bereitstellt. Sie ist kein vollständiger Datenbank-Client für sich, sondern bildet die Grundlage für die MySQL-Kommunikation in Swoole-basierten Anwendungen.

Im Gegensatz zu klassischen PHP-Datenbankerweiterungen wie mysqli oder PDO operiert Swooles MySQL-Integration vollständig nicht-blockierend innerhalb des Event-Loop-Modells von Swoole. Das ermöglicht es, tausende gleichzeitige Datenbankverbindungen mit minimalem Overhead zu verwalten, da wartende I/O-Operationen den Worker-Prozess nicht blockieren.

Typisch werden die in Swoole\MySQL definierten Konstanten verwendet, um Fehlerzustände oder Verbindungsstatus zu prüfen. Der eigentliche Datenbankzugriff erfolgt über Swoole\Coroutine\MySQL (für coroutinenbasierte Verwendung) oder den veralteten Callback-basierten Swoole\Async\MySQL-Ansatz.

Hinweis: In neueren Swoole-Versionen (ab 4.x) wird die Verwendung von Swoole\Coroutine\MySQL oder einer PDO-kompatiblen Coroutinen-Implementierung empfohlen. Die hier beschriebene Klasse wird hauptsächlich für ihre Konstanten-Definitionen verwendet und ist in modernen Swoole-Projekten oft nur indirekt relevant.

Beispiele

Verwendung von Swoole\MySQL-Konstanten bei der Fehlerprüfung

<?php
// Beispiel mit Swoole\Coroutine\MySQL, das auf Swoole\MySQL-Konstanten zurückgreift
Swoole\Coroutine\run(function () {
    $db = new Swoole\Coroutine\MySQL();
    $result = $db->connect([
        'host'     => '127.0.0.1',
        'port'     => 3306,
        'user'     => 'root',
        'password' => 'secret',
        'database' => 'testdb',
    ]);

    if (!$result) {
        // Fehlercode und Meldung ausgeben
        echo 'Verbindungsfehler [' . $db->errno . ']: ' . $db->error . PHP_EOL;
        return;
    }

    $rows = $db->query('SELECT id, name FROM users LIMIT 5');
    if ($rows === false) {
        echo 'Abfragefehler [' . $db->errno . ']: ' . $db->error . PHP_EOL;
        return;
    }

    foreach ($rows as $row) {
        echo 'ID: ' . $row['id'] . ', Name: ' . $row['name'] . PHP_EOL;
    }
});
ID: 1, Name: Alice ID: 2, Name: Bob ...

Prüfung der Swoole\MySQL-Konstanten

<?php
// Ausgabe definierter Konstanten der Swoole\MySQL-Klasse
$reflection = new ReflectionClass(Swoole\MySQL::class);
$constants  = $reflection->getConstants();

foreach ($constants as $name => $value) {
    echo 'Swoole\\MySQL::' . $name . ' = ' . var_export($value, true) . PHP_EOL;
}

// Direkte Verwendung einer Konstante (Beispiel – tatsächliche Konstanten sind
// von der installierten Swoole-Version abhängig)
// echo Swoole\MySQL::ERR_RESOLVE_HOST;
Swoole\MySQL::ERR_RESOLVE_HOST = 1 ...

// Wichtig · Fallstricke

Deprecation-Hinweis: Die klassische callback-basierte MySQL-API von Swoole gilt als veraltet. Seit Swoole 4.x wird ausdrücklich die Verwendung von Swoole\Coroutine\MySQL oder einer PDO-Hook-basierten Lösung über Swoole\Runtime::enableCoroutine() empfohlen.

Sicherheit: Wie bei jeder Datenbankanbindung sollten Benutzereingaben niemals direkt in SQL-Abfragen eingefügt werden. Verwende stets Prepared Statements über die prepare()- und execute()-Methoden von Swoole\Coroutine\MySQL, um SQL-Injection zu verhindern.

Verfügbarkeit: Swoole\MySQL ist nur verfügbar, wenn die Swoole-Erweiterung installiert und aktiviert ist (extension=swoole in der php.ini). Die genauen Konstanten und Methoden können je nach Swoole-Version variieren — prüfe stets die Dokumentation der eingesetzten Version.