网站有两个按钮,insert 重复插入一条记录,stop 停止插入。但是,我尝试使用 MySQL 关闭连接,它将在 PHP 中停止运行,但事件仍然存在-6ren">
gpt4 book ai didi

php - MYSQL 关闭连接无法停止插入事件

转载 作者:可可西里 更新时间:2023-11-01 07:53:13 24 4
gpt4 key购买 nike

<?php
header('Content-Type: text/html; charset=utf8');
$dbhost = '192.168.1.23';
$dbuser = 'demouser01';
$dbpass = 'demo*PW';
$dbname = 'testdb1';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connection');
mysql_select_db($dbname);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT='utf8'");
mysql_query("SET CHARACTER_SET_RESULTS='utf8'");
if(isset($_POST['start'])) {
$chi = 'chiiiii';
$id = 1;
for ($i = 1; $i <= 99999999999; $i++) {
$eng = substr(str_shuffle(str_repeat("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 5)), 0, 1024);
$math = substr(str_shuffle(str_repeat("1234567890", 6)), 0, 16);
$sql = "INSERT INTO test_tb (id,chi,eng,num) VALUES (".$id.",'".$chi."','".$eng."',".$math.")";
$result = mysql_query($sql) or die('MySQL query error');
$id++;
}
$id = 0;
sleep(60);
mysql_close($conn);
} else if(isset($_POST['stop'])) {
mysql_close($conn);
}
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input type="submit" name="start" value="Start Insert">
<input type="submit" name="stop" value="Stop Insert">
</form>

网站有两个按钮,insert 重复插入一条记录,stop 停止插入。但是,我尝试使用 MySQL 关闭连接,它将在 PHP 中停止运行,但事件仍然存在。插件仍在继续执行。如何解决这个问题?谢谢。

最佳答案

由于 PHP 不允许您在请求之间共享资源(据我所知),您可以通过几种方法实现在另一个请求中停止进程的能力:

首先添加这一行:

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

然后用 while 替换你的 for 语句(看起来你不关心迭代次数,如果是这样你可以改变这种行为):

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

替换为:

while ( $_SESSION['continue'] )

而不是关闭连接来停止插入,而是这样做:

mysql_close ($con)

将更改为:

$_SESSION['continue'] = false;

注意:不要忘记在脚本开头调用 session_start ()。就这些。

我假设您想停止来自同一 session 的页面,如果不是这种情况,您可以改用 ACP ore SHM。例如:

替换:

$_SESSION['continue'] = true

与:

apc_store( 'continue', true );

while ( $_SESSION['continue'] )

与:

while ( acp_fetch ('continue') )

$_SESSION['continue'] = false;

与:

apc_store( 'continue', false );

完成!

关于php - MYSQL 关闭连接无法停止插入事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14892874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com