Signatur
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;
}
});
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;
// 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.