2013-12-11 109 views
0

所有这些都驻留在ubuntu LAMP服务器上。我试图把一个sql查询的结果放到一个csv文件中。 PHP可以查询数据库并创建csv文件。但我无法将结果写入csv文件。将MYSQL查询写入CSV文件无法写入查询

<?php 
//connect to db and query 
$db_conn=mysqli_connect(xxxx, xxxx, xxxx, xxxx); 
if (mysqli_connect_errno($db_conn)) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
$result = mysqli_query($db_conn,'SELECT time, bid, ask, volume FROM MtGox LIMIT 50'); 
$fp = fopen('/var/www/BTCData.csv',"w")or die("can't open file"); 

//store results as array and put into csv file 
$fp = fopen('/var/www/TempFile.csv',"w")or die("can't open file"); 
$row = mysqli_fetch_assoc($result)or die('failure!'); 
foreach ($row as $fields) { 
fputcsv($fp, $fields); 
} 
fclose($fp); 
echo 'success!'; 
?> 
+0

你应该把你的'mysqli_fetch_assoc'通话inmto环路,也或者你只能得到一个单行。另外 - 你打开两个CSV文件;你想写哪一个? – andrewsi

+0

我想写给BTCData。问题似乎是从mysqli_fetch_assoc获取数据。如果我在网页上打印或回显结果,所有行都会显示出来。但是,我无法获取到csv文件。我可以写入目录,因为我已经将一些文本文件写入了一些文本文件来检查。 – user3092297

回答

0
$db_conn=mysqli_connect(xxxx, xxxx, xxxx, xxxx); 
if (mysqli_connect_errno($db_conn)) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$result = mysqli_query($db_conn,'SELECT time, bid, ask, volume FROM MtGox LIMIT 50'); 
$data = ''; 

while ($row = mysql_fetch_assoc($result)) { 
    $data .= $row['time'].';'; 
    $data .= $row['bid'].';'; 
    $data .= $row['ask'].';'; 
    $data .= $row['volume'].';'; 
} 

file_put_contents ('/var/www/BTCData.csv', $data); 
+0

这会创建csv文件,但不会写入任何内容。 – user3092297