Mysql 数据生成网页,skymvc网站测试之mysql数据生成

跳至

[1]

[全屏预览]

$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 "删除开始

";

echo '

0

';

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 "";

}

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 "开始

";

echo '

0

';

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 "";

}

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"];

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用MySQL的内置函数和语句来生成测试数据。以下是一些常用的方法: 1. 使用INSERT INTO语句:使用INSERT INTO语句将手动添加的数据插入到表中。例如,如果有一个名为"users"的表,可以使用以下语句插入测试数据: ``` INSERT INTO users (name, age) VALUES ('John', 25), ('Jane', 30), ('Bob', 35); ``` 2. 使用SELECT INTO语句:使用SELECT INTO语句从现有的表中选择数据并插入到新表中。例如,可以使用以下语句从现有的"users"表中选择前10行数据并插入到新的"test_users"表中: ``` CREATE TABLE test_users SELECT * FROM users LIMIT 10; ``` 3. 使用生成函数:MySQL提供了一些内置的生成函数,可以用于生成随机或递增的数据。例如,可以使用RAND()函数生成随机数,并将其插入到表中: ``` INSERT INTO table_name (column1, column2) VALUES (RAND(), RAND()); ``` 4. 使用循环语句:可以使用循环语句(如WHILE或FOR)在存储过程或函数中生成大量的测试数据。例如,可以使用存储过程生成指定数量的随机用户数据: ``` DELIMITER // CREATE PROCEDURE generate_test_data(IN num_rows INT) BEGIN DECLARE i INT DEFAULT 1; WHILE i <= num_rows DO INSERT INTO users (name, age) VALUES (CONCAT('User', i), FLOOR(RAND() * 100)); SET i = i + 1; END WHILE; END // DELIMITER ; CALL generate_test_data(1000); ``` 这是一些常用的方法来生成测试数据。根据你的具体需求和数据库结构,你可以选择适合的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值