mysql中jxgl什么意思_skymvc网站测试之mysql数据生成

本文介绍了一个在Skymvc框架下管理MySQL数据库的类,包括数据生成、删除、更新自增ID等功能。例如,通过设置最大行数和线程数量,可以批量插入测试数据,同时提供了删除表数据和更新表自增ID的函数。
摘要由CSDN通过智能技术生成

*Author 雷日锦

*本代码在skymvc中使用

*skymvc mysql数据库测试

*******/

class test_mysqlControl extendsskymvc{public $maxrow=30;//每次最多生成多少千行

public $maxThreads=10;public function__construct(){

parent::__construct();

}public functiononDefault(){

}public functiononReset(){if(!empty($_SESSION)){foreach($_SESSION as $k=>$v){unset($_SESSION[$k]);

}

}$this->onIncrement();

}public function getNum($table){//设置表所需要的记录数

$cf=array("article"=>300000,

"test"=>200000,

"test2"=>200000,);if(!isset($cf[$table])){return 200000;

}else{return $cf[$table];

}

}public functiononAutoDelete(){set_time_limit(0);ob_implicit_flush(true);$res=M("article")->query("show tables");$data=M("article")->fetch_array(PDO::FETCH_NUM);$this->loadClass("spider");if($data){$uk=0;foreach($data as $k=>$t){$tables[]=$t[0];$urls[$uk][]="http://".$_SERVER['HTTP_HOST']."/index.php?m=test_mysql&a=delete&table=".str_replace(TABLE_PRE,"",$t[0]);if($k%$this->maxThreads==($this->maxThreads-1)){$uk++;

}

}echo "删除开始
";echo '

0

var i=0;

var it=setInterval(function(){

i++;

document.querySelector("#aid").innerHTML="已经执行"+i+"秒了";

},1000);

';foreach($urls as $k=>$us){echo "第".$k."部分
";flush();

@ob_flush();$this->spider->start($us,function($data){echo $data['url']."
".$data['content']."
";flush();

@ob_flush();

},600);

}

}echo "本次删结束
";flush();

@ob_flush();echo "

setTimeout(function(){

window.location.reload();

},1000);

";

}public functiononDelete(){$table=get('table','h');

M($table)->query("delete from ".table($table)." where 1=1 limit 50000");echo "delete $table success";

}/*更新自增id*/

public functiononIncrement(){$res=M("article")->query("show tables");$data=M("article")->fetch_array(PDO::FETCH_NUM);if($data){foreach($data as $k=>$t){$table=str_replace(TABLE_PRE,"",$t[0]);

M($table)->query("ALTER TABLE `sky_".$table."` AUTO_INCREMENT=1;");

}

}echo "update increment";

}public functiononAutoInsert(){set_time_limit(0);ob_implicit_flush(true);$res=M("article")->query("show tables");$data=M("article")->fetch_array(PDO::FETCH_NUM);$tables=array();if($data){$uk=0;foreach($data as $k=>$t){$tables[]=$t[0];$urls[$uk][]="http://".$_SERVER['HTTP_HOST']."/index.php?m=test_mysql&a=insert&table=".str_replace(TABLE_PRE,"",$t[0]);if($k%$this->maxThreads==($this->maxThreads-1)){$uk++;

}

}$this->loadClass("spider");echo "开始
";echo '

0

var i=0;

var it=setInterval(function(){

i++;

document.querySelector("#aid").innerHTML="已经执行"+i+"秒了";

},1000);

';foreach($urls as $k=>$us){echo "第".$k."部分
";flush();

@ob_flush();$this->spider->start($us,function($data){echo $data['url']."
".$data['content']."
";flush();

@ob_flush();

},600);

}echo "结束
";flush();

@ob_flush();

}echo "

setTimeout(function(){

window.location.reload();

},1000);

";

}public function onInsert($table=''){$inauto=true;if(!$table){set_time_limit(0);$inauto=false;

}$table=$table?$table:get('table','h');if(!$table){$table="article";

}$fields=$this->getFIelds($table);//为什么只执行到266 百思不得其解

$jnum=$this->getNum($table);for($j=0;$jmaxrow;$j++){$rscount=M($table)->selectOne(array("fields"=>" count(1)"));if($rscount>$jnum){echo $table."测试数据已经够了
";break;

}if(!inauto){echo "正在插入第".$j."千条
";flush();

@ob_flush();ob_clean();

}$data=array();for($i=0;$i<1000;$i++){$data[]=$this->dbPost($table);

}$sql=" insert into ".table($table)."(".implode(",",$fields).") values ";foreach($data as $k=>$v){if($k>0){$sql.=",";

}$sql.="("._implode($v).")";

}$sql.=";";

M($table)->query($sql);unset($data);unset($sql);

}echo "success";

}public function getFIelds($table){$fields=M($table)->getFields();foreach($fields as $k=>$v){if($k==0) continue;$data[]=$v['Field'];

}return $data;

}public function dbPost($table,$msg=''){if(isset($_SESSION["field_".$table])){$fields=$_SESSION["field_".$table];

}else{$fields=M($table)->getFields();$_SESSION["field_".$table]=$fields;

}$msg=$msg?$msg:"skymvc是".date("Ymdhis")."最贴心的".date("Ymdhis")."php开发框架,快来使用吧!";$data=array();$gid=$this->getId($table);foreach($fields as $k=>$v){if($k==0) continue;if(preg_match("/tinyint/i",$v['Type'])){$data[$v['Field']]=rand(0,3);

}elseif(preg_match("/int/i",$v['Type'])){if($v['Field']=='dateline'){$data[$v['Field']]=time();

}else{$data[$v['Field']]=$gid;

}

}elseif(preg_match("/decimal/i",$v['Type'])){$data[$v['Field']]=rand(1,100000);

}elseif(preg_match("/datetime/i",$v['Type']) ){$data[$v['Field']]=date("Y-m-d H:i:s");

}elseif($v['Field']=='bstatus'){$data[$v['Field']]=1;

}else{$data[$v['Field']]=$msg;

}

}return $data;

}public function getId($table){if(!isset($_SESSION["autoid_$table"])){$_SESSION["autoid_$table"]=1;

}else{$_SESSION["autoid_$table"]++;

}return $_SESSION["autoid_$table"];

}

}?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值