Heim  >  Artikel  >  Backend-Entwicklung  >  Eine Erklärung, wie PHP Datenbankoperationen durchführt, Seiten-Timeouts verhindert und Seiten automatisch aktualisiert

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

韦小宝
韦小宝Original
2018-03-01 15:27:512981Durchsuche

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

2. Fügen Sie den Code hinzu:

set_time_limit(0);  
//0表示不超时

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:

Seitenaktualisierung209861d5cd2975725c730f519ed6ad71Die 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 {
    //刷新停止
}

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 {
    //刷新停止
}

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;
}

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!

Stellungnahme:
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