Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL close connect kann die Einfügeaktivität nicht anhalten

Da PHP es Ihnen nicht erlaubt, Ressourcen zwischen Anfragen zu teilen (AFAIK), gibt es einige Möglichkeiten, wie Sie diese Fähigkeit erreichen können, um einen Prozess in einer anderen Anfrage zu stoppen:

Fügen Sie zuerst diese Zeile hinzu:

if ( isset ($_POST['start']) ) {
    $_SESSION['continue'] = true;

und ersetzen Sie dann Ihre for-Anweisung durch while (Es scheint, dass Sie sich nicht um die Anzahl der Iterationen kümmern, wenn ja, können Sie dieses Verhalten ändern):

for ($i = 1; $i <= 99999999999; $i++) {

ersetzen durch:

while ( $_SESSION['continue'] )

und anstatt die Verbindung zu schließen, um das Einfügen zu stoppen, tun Sie dies:

mysql_close ($con)

ändert sich zu:

$_SESSION['continue'] = false;

HINWEIS:Vergessen Sie nicht, session_start() am Anfang Ihres Skripts aufzurufen. Das ist alles.

Ich bin davon ausgegangen, dass Sie die Seite derselben Sitzung stoppen möchten, wenn dies nicht der Fall ist, können Sie stattdessen ACP oder SHM verwenden. zum Beispiel:

ersetzen:

$_SESSION['continue'] = true

mit:

apc_store( 'continue', true );

und

while ( $_SESSION['continue'] )

mit:

while ( acp_fetch ('continue') )

und

$_SESSION['continue'] = false;

mit:

apc_store( 'continue', false );

Fertig!