Heim > Backend-Entwicklung > PHP-Problem > So legen Sie die Zeit fest, zu der PHP eine Verbindung zur Datenbank herstellen soll

So legen Sie die Zeit fest, zu der PHP eine Verbindung zur Datenbank herstellen soll

PHPz
Freigeben: 2023-04-06 13:16:01
Original
1413 Leute haben es durchsucht

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));
Nach dem Login kopieren
Nach dem Login kopieren

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));
Nach dem Login kopieren

Wobei $timeout das Timeout in Sekunden darstellt.

2. So legen Sie das Verbindungszeitlimit und das Abfragezeitlimit fest

  1. Einstellen des Verbindungszeitlimits

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));
Nach dem Login kopieren
Nach dem Login kopieren

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.

  1. Abfrage-Timeout-Einstellung

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();
Nach dem Login kopieren

Beim Ausführen der Abfrageanweisung können wir den folgenden Code hinzufügen:

$stmt->query("SET SESSION wait_timeout=120");
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage