Eine Erklärung, wie PHP Datenbankoperationen durchführt, Seiten-Timeouts verhindert und Seiten automatisch aktualisiert

韦小宝
Freigeben: 2023-03-20 16:20:01
Original
2980 Leute haben es durchsucht

Es ist sehr üblich, die Datenbank in der PHP-Entwicklung zu bedienen. Wenn wir längere Zeit auf einer Seite bleiben, wird es meiner Meinung nach zu Eingabeaufforderungen oder Fehlern kommen. Deshalb werden wir heute darüber sprechen, wie das geht Betreiben Sie die Datenbank und verhindern Sie Seiten-Timeouts!

Hinweis:

Beim Initialisieren oder Ändern der Datenbank:
1 Einfach SQL-Anweisungen direkt verwenden.
2. Etwas komplizierter kann es durch Ausführen von PHP-Code erfolgen (Daten lesen und dann Daten schreiben/ändern).

Bei Verwendung von PHP-Code (keine Befehlszeile) kann es zu einer Webseiten-Zeitüberschreitung kommen. Es gibt im Allgemeinen drei Lösungen:
1. Stellen Sie php.ini ein:

max_execution_time
Nach dem Login kopieren

2. Fügen Sie den Code hinzu:

set_time_limit(0);  
//0表示不超时
Nach dem Login kopieren

3. Die Seite wird automatisch aktualisiert und führt die gesamte Arbeit stapelweise aus:
Die Seite kann sich mit dem Ausführungsprozess ändern. Beispielsweise kann sie dem Benutzer dynamisch mitteilen, wie weit sie ausgeführt wurde, anstatt auf eine einzelne Seite zu warten.
Im Folgenden wird hauptsächlich die dritte Methode zusammengefasst.

Die Seite wird automatisch aktualisiert:

Seitenaktualisierung<==>Die Seite springt und hört auf zu springen, wenn eine bestimmte Bedingung erfüllt ist.
Seitensprung: Ausgabe von Meta-Tags zur Implementierung von

if ($flag) {
    //跳转页面,xxx为该php文件的文件名
    echo &#39;<meta http-equiv="refresh" content="0;url=xxx.php?">&#39;;
} else {
    //刷新停止
}
Nach dem Login kopieren

Aktualisierung während der Übergabe von Parametern zur Steuerung von Datenbankvorgängen:

In der Meta-URL können wir Get verwenden Methode zur Übergabe eines Parameters.
Mit diesem Parameter kann das Limit der SQL-Anweisung geändert werden, um jedes Mal einen Teil der Funktion zu implementieren.

$page = isset($_GET[&#39;page&#39;]) ? $_GET[&#39;page&#39;] : 0;
//用$page构造sql语句或其它功能
//数据库操作或其它功能
//设置$flag
$flag = $pdostatement->rowCount() == 0;  //比如数据库影响行数
//决定 跳转刷新 或 停止
if ($flag) {
    //跳转页面,xxx为该php文件的文件名
    echo &#39;<meta http-equiv="refresh" content="0;url=xxx.php?page=&#39; . ++$page . &#39;">&#39;;
} else {
    //刷新停止
}
Nach dem Login kopieren

Angenommen, +1 für bestimmte Felddaten, die spezifische Implementierung:

Ich bin jetzt nicht sehr vertraut mit SQL.
Wenn es sich nur um ein Limit handelt, kann es dann vorkommen, dass die abgefragten Daten noch einmal abgefragt und ein zweites Mal ausgeführt werden?
Ich persönlich denke, dass es besser ist, die Reihenfolge des Primärschlüssels nach

<meta charset="UTF-8">
<?php
$page = isset($_GET[&#39;page&#39;]) ? $_GET[&#39;page&#39;] : 0;
$step = 50;  //每次刷新更新 50条数据
$limit_start = $page * 50;

$dsn = "mysql:host=localhost;dbname=db_name";
try {
    $pdo = new PDO($dsn, "root", "123456");
    $sql = <<<SQL
SELECT col_num, col_id
FROM table_name
ORDER by col_id
LIMIT {$limit_start},{$step}
SQL;
    $pdostatement = $pdo->prepare($sql);
    $pdostatement->execute();
    $pdostatement->setFetchMode(PDO::FETCH_NUM);
    $num = $pdostatement->rowCount();

    if ($num == 0) {
        echo "sql执行完毕";
    } else {
        echo "正在执行sql<br>";

        $sql_update = "UPDATE table_name ";
        while (list($col_num, $col_id) = $pdostatement->fetch(PDO::FETCH_NUM)) {
            $col_name++;
            $sql_update .= <<<SQL
SET col_name = "{$col_num}"
WHERE col_id = "{$col_id}" , 
SQL;
        }
        $sql_update = substr($sql_update, 0, -1);  //去掉最后的逗号
  $pdostatement_update = $pdo->prepare($sql_update);
        $pdostatement_update->execute();
        $num_update = $pdostatement_update->rowCount();
        if ($num_update == 0) {
            echo $gfc_id . "修改出错,停止更新";
        } else {
            echo &#39;<meta http-equiv="refresh" content="0;url=jianshu.php?page=&#39; . (++$page) . &#39;">&#39;;
        }
    }
} catch (PDOException $e) {
    echo "数据库连接失败" . $e->getMessage();  //连接失败,获取错误信息
  exit;
}
Nach dem Login kopieren

Wie oben beschrieben führt PHP Datenbankoperationen aus, verhindert Seiten-Timeouts und aktualisiert die Seite automatisch PHP-Entwicklung Sie sind alle sehr nützlich und sehr langlebig.

Ähnliche Artikel:

Wie man mit PHP umgeht, das die Seite automatisch aktualisiert

Tutorial zum PHP-Datenbankbetrieb und zur Datenbankverbindung

Das obige ist der detaillierte Inhalt vonEine Erklärung, wie PHP Datenbankoperationen durchführt, Seiten-Timeouts verhindert und Seiten automatisch aktualisiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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