PHP ist eine weit verbreitete serverseitige Skriptsprache, die mit verschiedenen Datenbanken interagieren und kommunizieren kann. In der tatsächlichen Entwicklung stoßen wir häufig auf Situationen, in denen wir eine Verbindung zu einer Datenbank herstellen müssen. Wenn PHP eine Verbindung zur Datenbank herstellt, spielen viele Faktoren eine Rolle. Einer der wichtigen Faktoren ist die Einstellung der Verbindungszeit. In diesem Artikel wird kurz erläutert, wie Sie die Zeit festlegen, zu der PHP eine Verbindung zur Datenbank herstellt.
1. Einstellung der PHP-Datenbankverbindungszeit
Die Zeit zum Herstellen einer Verbindung zur Datenbank in PHP wird im Allgemeinen durch zwei Variablen gesteuert: Verbindungs-Timeout und Abfrage-Timeout. Das Verbindungszeitlimit bezieht sich auf die maximale Wartezeit für die Verbindung mit der Datenbank. Wenn die Datenbank innerhalb dieser Zeit nicht verbunden werden kann, schlägt die Verbindungsanforderung fehl Die Verbindungsanforderung schlägt fehl. Wenn die Abfrage nicht abgeschlossen werden kann, wird die Ausführung abgebrochen und eine Fehlermeldung zurückgegeben.
Nach PHP 5.3 können Sie das Verbindungszeitlimit und das Abfragezeitlimit festlegen, indem Sie das Schlüsselwort timeout in den Parametern hinzufügen. Ein Beispiel ist wie folgt:
$conn = mysqli_connect($host, $username, $password, $dbname, $port, null, array('connect_timeout' => $connect_timeout, 'query_timeout' => $query_timeout));
Darunter repräsentieren $connect_timeout und $query_timeout das Verbindungszeitlimit bzw. das Abfragezeitlimit in Sekunden.
Darüber hinaus können Sie in PDO auch die Verbindungszeit steuern, indem Sie Eigenschaften festlegen. Das Beispiel lautet wie folgt:
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass, array(PDO::ATTR_TIMEOUT => $timeout));
Wobei $timeout das Timeout in Sekunden darstellt.
2. So legen Sie das Verbindungszeitlimit und das Abfragezeitlimit fest
In PHP kann das Verbindungszeitlimit in den Parametern festgelegt werden. Der Beispielcode lautet wie folgt:
$conn = mysqli_connect($host, $username, $password, $dbname, $port, null, array('connect_timeout' => $connect_timeout, 'query_timeout' => $query_timeout));
Darunter stellt $connect_timeout das Verbindungszeitlimit in Sekunden dar; $query_timeout stellt das Abfragezeitlimit in Sekunden dar. Wir können die Werte dieser beiden Parameter nach Bedarf festlegen.
Die Abfrage-Timeout-Einstellung in PHP umfasst im Allgemeinen zwei Parameter von MySQL: wait_timeout und Interactive_timeout. wait_timeout bezieht sich auf die Zeit, die der Client darauf wartet, dass der Server die Verbindung im inaktiven Zustand schließt. Interactive_timeout bezieht sich auf die Zeit, die der Client darauf wartet, dass der Server die Verbindung im inaktiven Zustand schließt. Dies funktioniert nur, wenn der Client verwendet die Option „INTERAKTIV“. Standardmäßig beträgt der Wert dieser beiden Parameter 28800 Sekunden, also 8 Stunden.
In PHP können wir die Ausführungszeit der Abfrage steuern, indem wir das Timeout in der SQL-Anweisung angeben. Der Beispielcode lautet wie folgt:
$stmt = $conn->prepare("SELECT * FROM users WHERE id=?"); $stmt->bind_param("i", $id); $stmt->execute(); $stmt->store_result(); $stmt->sqlstate(); $stmt->get_warnings(); $stmt->errno(); $stmt->error(); $stmt->fetch();
Beim Ausführen der Abfrageanweisung können wir den folgenden Code hinzufügen:
$stmt->query("SET SESSION wait_timeout=120");
Auf diese Weise kann das Timeout hier eingestellt werden, hier setzen wir es auf 120 Sekunden. Da es sich bei wait_timeout um einen serverseitigen Parameter handelt, ist die Einstellung dieses Timeouts grob und nicht detailliert genug.
3. Zusammenfassung
Wenn PHP eine Verbindung zur Datenbank herstellt, müssen Sie auf die Einstellung der Verbindungszeit achten, einschließlich des Verbindungszeitlimits und des Abfragezeitlimits. Wir können dies erreichen, indem wir das Timeout in den Parametern angeben. Darüber hinaus können wir das Timeout auch in der SQL-Anweisung angeben, um die Ausführungszeit der Abfrage zu begrenzen. Für eine detailliertere Timeout-Kontrolle ist ein tieferes Verständnis der serverseitigen MySQL-Parameter erforderlich. In der tatsächlichen Entwicklung müssen wir das Timeout entsprechend der jeweiligen Situation angemessen einstellen, um die Stabilität und Zuverlässigkeit des Systems sicherzustellen.
Das obige ist der detaillierte Inhalt vonSo legen Sie die Zeit fest, zu der PHP eine Verbindung zur Datenbank herstellen soll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!