前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php数据库文件导出代码

php数据库文件导出代码

作者头像
句小芒
发布2022-12-29 18:02:46
1.9K0
发布2022-12-29 18:02:46
举报

$servername = "127.0.0.1";

$username = "root";

$password = "********";

$dbname = "data";

$pice = 5000;

$start = 0;

$fileName = 'text.csv';

setLogInfo("脚本开始执行", 'export_csv_file');

while(true){

// 创建连接

setLogInfo("establishing the mysql connection......", 'export_csv_file');

$conn = new mysqli($servername, $username, $password, $dbname);

// 检测连接

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

}

//查询数据总条数total

setLogInfo("读取数据总条数", 'export_csv_file');

$totalSql = "SELECT count(*) as total FROM card";

$result = $conn->query($totalSql);

$total = $result->fetch_assoc()['total'];

setLogInfo("The number of the data is :" . $total , 'export_csv_file');

//计算分页批次

$batchCount = ceil($total/$pice);

$handel = fopen('test.csv', 'a+');

for($i = 0; $i < $batchCount; $i++){

/*if($i == 20){

//关闭文件句柄

fclose($handel);

die;

}*/

//设置分页偏移量 读取数据

$start = $i * $pice;

$sql = "select * from card limit " . $start . "," . $pice;

$res = $conn->query($sql);

if ($res->num_rows > 0) {

while($row = $res->fetch_assoc()) {

//将当前批次数据写入文件

fputcsv($handel,[$row['card_id'],$row['card_number']]);

}

} else {

echo "0 results";

die;

}

unset($start,$row,$res,$sql);

}

fclose($handel);

//所有批次数据写入完毕关闭数据库链接,退出脚本 die;

setLogInfo("所有批次数据写入完毕", 'export_csv_file');

$conn->close();

die;

}

/**

* 自定义日志

* @param $info

* @param $logFileName

* @param int $length

*/

function setLogInfo($info, $logFileName)

{

$time = date('Y-m-d H:i:s') . ' : ';

$data = $info;

if(is_array($info)){

$data = implode(',',$info);

}

$data = $time . $data . PHP_EOL;

$logFileName = $logFileName . '-' . date('Y-m-d') . '.log';

$outFilePath = $logFileName;

$handle = fopen($outFilePath, "a+");

fwrite($handle, $data);

fclose($handle);

}

/**

* 导出csv文件

* @param $filename

* @param $list

*/

function saveCsv($filename, $list,$mode)

{

$fp = fopen($filename, $mode);

if($mode == 'w'){

fwrite($fp,$list);

}else{

foreach ($list as $fields) {

fputcsv($fp, $fields);

}

}

fclose($fp);

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档