php – MYSQL close connect无法暂停insert活动
发布时间:2020-12-13 21:46:59 所属栏目:PHP教程 来源:网络整理
导读:?phpheader('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_d
<?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 ); 完成! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |