我想将控制台中"Select * from table1“的输出保存到PHP中的一个文件中。
在php中最有效的方法是什么?
编辑:我希望输出像控制台中的类型。
+--------+--------+
| thing1 | thing2 |
+--------+--------+
| item1a | item2a |
| item1b | item2b |
+--------+--------+另外,我认为php代码应该是“exec(我正在寻找的mysql命令)”。据我所知,mysql_fetch_array很慢,我正在寻找一个简单的output...so,它应该可以从控制台以某种方式做到这一点。(感谢您到目前为止的回复!)
发布于 2010-10-31 08:56:05
您可以使用MySQL's INTO OUTFILE syntax -这将生成一个逗号分隔值(CSV)文本文件:
SELECT *
INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM YOUR_TABLE;需要具备将文件写入指定位置的权限。
发布于 2010-10-31 08:55:49
以什么格式?如果你想用制表符分隔它们,你可以使用类似这样的东西:
$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中:
$r = mysql_query("SELECT * FROM table1");
$fp = fopen('table1.csv', 'w');
while($row = mysql_fetch_assoc($r)) {
fputcsv($fp, $row);
}
fclose($fp);或者,正如其他人所指出的,使用MySQL自己的OUTFILE,这是我不知道的。:)
https://stackoverflow.com/questions/4061359
复制相似问题