首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL选择到文件

MYSQL选择到文件
EN

Stack Overflow用户
提问于 2010-10-31 08:48:56
回答 2查看 3.7K关注 0票数 6

我想将控制台中"Select * from table1“的输出保存到PHP中的一个文件中。

在php中最有效的方法是什么?

编辑:我希望输出像控制台中的类型。

代码语言:javascript
复制
+--------+--------+
| thing1 | thing2 |
+--------+--------+
| item1a | item2a |
| item1b | item2b |
+--------+--------+

另外,我认为php代码应该是“exec(我正在寻找的mysql命令)”。据我所知,mysql_fetch_array很慢,我正在寻找一个简单的output...so,它应该可以从控制台以某种方式做到这一点。(感谢您到目前为止的回复!)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-31 08:56:05

您可以使用MySQL's INTO OUTFILE syntax -这将生成一个逗号分隔值(CSV)文本文件:

代码语言:javascript
复制
SELECT *
  INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
 LINES TERMINATED BY '\n'
  FROM YOUR_TABLE;

需要具备将文件写入指定位置的权限。

票数 9
EN

Stack Overflow用户

发布于 2010-10-31 08:55:49

以什么格式?如果你想用制表符分隔它们,你可以使用类似这样的东西:

代码语言:javascript
复制
$r   = mysql_query("SELECT * FROM table1");
$str = '';

while($row = mysql_fetch_assoc($r)) {
    $str .= implode("\t", $row)."\n";
}

file_put_contents('table1.txt', $str);

或者,在CSV中:

代码语言:javascript
复制
$r  = mysql_query("SELECT * FROM table1");    
$fp = fopen('table1.csv', 'w');

while($row = mysql_fetch_assoc($r)) {
    fputcsv($fp, $row);
}

fclose($fp);

或者,正如其他人所指出的,使用MySQL自己的OUTFILE,这是我不知道的。:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4061359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档