php – MYSQL close connect无法暂停insert活动

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – MYSQL close connect无法暂停insert活动脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?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)),1024);
    $math = substr(str_shuffle(str_repeat("1234567890",6)),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>

网站中有两个按钮,插入以重复插入记录,并停止插入.但是,我尝试使用MysqL关闭连接,它将在PHP中停止运行,但活动仍然存在.插入仍然保持执行.如何解决问题?谢谢.

解决方法

由于PHP不允许您在请求者之间共享资(AFaiK),因此有几种方法可以实现在另一个请求中停止进程的能力:

首先添加这一行:

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

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

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

用…来代替:

while ( $_SESSION['continue'] )

而不是关闭连接以停止插入执行此操作:

MysqL_close ($con)

包括

$_SESSION['continue'] = false;

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

我假设您想要停止同一会话中的页面,如果不是这种情况,您可以使用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 close connect无法暂停insert活动全部内容,希望文章能够帮你解决php – MYSQL close connect无法暂停insert活动所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。