찾다
php教程PHP源码将千万账号密码导入数据库脚本(增加高效版本)

跳至

$start_time=microtime_float();
$db=mysqli_connect('localhost','root','root','test');
$file=fopen('f:/10-million-combos.txt','rb');
mysqli_query($db,"DROP TABLE IF EXISTS `ten_million_account`;");
mysqli_query($db,"CREATE TABLE `test`.`ten_million_account`( `account_id` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, `account` VARCHAR(100) NOT NULL, `password` VARCHAR(200) NOT NULL, PRIMARY KEY (`account_id`) ) ENGINE=MYISAM CHARSET=utf8 COLLATE=utf8_general_ci; ");
//mysqli_query($db,"TRUNCATE ten_million_account;");
$sql = "INSERT INTO ten_million_account(`account`,`password`) VALUES('%s','%s');";
$count=1;
while($row=fgets($file)){
    echo $row;
    $data=preg_split("@\s.*?@",$row);
    if($data && !empty($data[0]) && !empty($data[1])){
        mysqli_query($db,sprintf($sql,$data[0],$data[1]));
    }
    $count++;
    unset($row);
    unset($data);
}
echo "\n run time:".(microtime_float()-$start_time);


function  microtime_float ()
{
    list( $usec ,  $sec ) =  explode ( " " ,  microtime ());
    return ((float) $usec  + (float) $sec );
}


2. [代码]改进高效版    

$start_time=microtime_float();
$db=mysqli_connect('localhost','root','root','test');
$file=fopen('f:/10-million-combos.txt','rb');
mysqli_query($db,"DROP TABLE IF EXISTS `ten_million_account`;");
mysqli_query($db,"CREATE TABLE `test`.`ten_million_account`( `account_id` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, `account` VARCHAR(100) NOT NULL, `password` VARCHAR(200) NOT NULL, PRIMARY KEY (`account_id`) ) ENGINE=MYISAM CHARSET=utf8 COLLATE=utf8_general_ci; ");
//mysqli_query($db,"TRUNCATE ten_million_account;");
$sql = "INSERT INTO `test`.ten_million_account(`account`,`password`) VALUES %s;";
$count=1;
$conj=$values_str='';
while($row=fgets($file)){
    //echo $row;
    $data=preg_split("@\s.*?@",addslashes($row));
    if($data && !empty($data[0]) && !empty($data[1])){
        //mysqli_query($db,sprintf($sql,$data[0],$data[1]));
        $values_str.=$conj."('".$data[0]."','".$data[1]."')";
        $conj=',';
    }
    unset($row);
    unset($data);
    if(($count%10000)==0){
        if($values_str){
            echo $count."\n";
            if(!mysqli_query($db,sprintf($sql,$values_str))){
                echo sprintf($sql,$values_str)."\n";
                exit;
            }
        }else{
            exit;
        }
        $values_str=$conj='';
    }
    $count++;
}
if($values_str){
    mysqli_query($db,sprintf($sql,$values_str));
}
echo "\n run time:".(microtime_float()-$start_time);


function  microtime_float ()
{
    list( $usec ,  $sec ) =  explode ( " " ,  microtime ());
    return ((float) $usec  + (float) $sec );
}

           

       

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)