<?php
class test_mysqlControl extends skymvc{
public $maxrow=30;//每次最多生成多少千行
public $maxThreads=10;
public function __construct(){
parent::__construct();
}
public function onDefault(){
}
public function onReset(){
if(!empty($_SESSION)){
foreach($_SESSION as $k=>$v){
unset($_SESSION[$k]);
}
}
$this->onIncrement();
}
public function getNum($table){
//设置表所需要的记录数
$cf=array(
"article"=>500000,
"test"=>300000,
"test2"=>300000,
);
if(!isset($cf[$table])){
return 300000;
}else{
return $cf[$table];
}
}
public function onAutoDelete(){
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 "删除开始<br>";
echo '<div id="aid">0</div>
<script>
var i=0;
var it=setInterval(function(){
i++;
document.querySelector("#aid").innerHTML="已经执行"+i+"秒了";
},1000);
</script>';
foreach($urls as $k=>$us){
echo "第".$k."部分<br>";
flush();
@ob_flush();
$this->spider->start($us,function($data){
echo $data['url']." <br>".$data['content']."<br>";
flush();
@ob_flush();
},600);
}
}
echo "本次删结束<br>";
flush();
@ob_flush();
echo "<script>
setTimeout(function(){
window.location.reload();
},1000);
</script>";
}
public function onDelete(){
$table=get('table','h');
M($table)->query("delete from ".table($table)." where 1=1 limit 50000");
echo "delete $table success";
}
/*更新自增id*/
public function onIncrement(){
$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 function onAutoInsert(){
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 "开始<br>";
echo '<div id="aid">0</div>
<script>
var i=0;
var it=setInterval(function(){
i++;
document.querySelector("#aid").innerHTML="已经执行"+i+"秒了";
},1000);
</script>';
foreach($urls as $k=>$us){
echo "第".$k."部分<br>";
flush();
@ob_flush();
$this->spider->start($us,function($data){
echo $data['url']." <br>".$data['content']."<br>";
flush();
@ob_flush();
},600);
}
echo "结束<br>";
flush();
@ob_flush();
}
echo "<script>
setTimeout(function(){
window.location.reload();
},1000);
</script>";
}
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;$j<$this->maxrow;$j++){
$rscount=M($table)->selectOne(array(
"fields"=>" count(1)"
));
if($rscount>$jnum){
echo $table."测试数据已经够了<br>";
break;
}
if(!inauto){
echo "正在插入第".$j."千条<br>";
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"];
}
}
?>
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。
80
2026.10.10
本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。
40
2026.10.10
本专题讲解Kratos框架接口定义体系,涵盖proto编写规范、proto add/client/server生成命令、http注解路由、validate校验、OpenAPI文档生成、跨服务proto复用与兼容性设计。
20
2026.10.10
C++虚函数是实现运行时多态的重要机制。本专题从virtual关键字的基本用法入手,介绍基类与派生类之间的函数重写、基类指针调用派生类方法,以及动态绑定的执行过程,帮助初学者掌握虚函数的核心语法。
40
2026.10.10
C++封装是面向对象编程的核心特性之一,通过类将数据与操作数据的函数组织在一起,并利用访问权限控制外部访问。本专题介绍类的定义、成员变量、成员函数以及public、private和protected的使用方法,帮助初学者掌握封装的基本原理。
20
2026.10.10
C++构造函数用于初始化类对象,是面向对象编程的重要基础。本专题从构造函数的定义、声明和调用入手,介绍默认构造函数、带参数构造函数、拷贝构造函数及成员初始化列表,帮助初学者掌握对象创建与初始化的基本方法。
40
2026.10.10
本专题整理Kratos框架入门内容,涵盖Go环境准备、kratos CLI安装升级、new命令创建项目、目录结构分层说明、服务启动与双协议端口、依赖下载报错排查,帮助开发者快速跑通第一个Kratos框架微服务应用。
20
2026.10.10
C++条件判断是控制程序执行流程的重要基础。本专题介绍if、if-else、else if和switch等常见分支语句,结合条件表达式、比较运算符与代码示例,帮助初学者掌握不同场景下的判断逻辑。
20
2026.10.10
C++变量是编写程序和存储数据的基础。本专题围绕变量声明、定义、初始化、赋值和类型选择等内容展开,帮助初学者理解不同变量的用法,并掌握在实际代码中定义和使用变量的方法。
20
2026.10.10
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.2万人学习
共6课时 | 54.7万人学习
最新文章








