mysql csv blob_MySQL导出为CSV与blob字段

我有一个问题,导出BLOB到一个CSV文件使用PHP。显然blob不是一个正常的字段,但它偶尔会被使用。但这里是我需要的,我需要这个脚本通过获取表格数组并以csv格式导出每一行来工作。 Blob搞砸了。我试过对blob进行base64_encode,但我相信会错误地导出blob。MySQL导出为CSV与blob字段

这是我到目前为止有:

function exportcsv($tables) {

foreach ($tables as $k => $v) {

$fh = fopen('sql/'.$v.'.csv', 'w');

$sql = mysql_query("SELECT * FROM $v");

while ($row = mysql_fetch_row($sql)) {

$line = array();

foreach ($row as $key => $v) {

$line[] = base64_encode($v);

}

fputcsv($fh, $line, chr(9)); //tab delimiting

}

fclose($fh);

}

}

任何帮助,将不胜感激。

那么,base64会在需要重新导入时保护blob的格式吗?

+0

不应该使用base64_decode吗?我不是BLOBS的专家,但我相信你不想编码它看到真正的文本,如果你按照我的意思.. –

+0

你可能会显示你有输出的样本,以便我们可以看到什么是错的? –

+0

呵呵。对不起,blob只是二进制(好的,加密的密码)。所以无论如何它对于任何类型的输出都是不可读的。但是base64_encode()的目标是让所有的fputcsv()工作,因为blob具有blob字段会损害导出的所有类型的随机字符,因为它包含\ r \ t和\ n's。所以编码可以防止这些奇怪的问题,并且确实阻止了它们。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值