php写入文件的问题。破碎的代码。救命!

时间:2011-07-05 06:07:51

标签: php

<?php
mysql_connect("localhost", "****", "****") or die(mysql_error());
mysql_select_db("****") or die(mysql_error());
// Make a MySQL Connection

$query = "SELECT * FROM sk";     
$result = mysql_query($query) or die(mysql_error());

$myFile = 'sitemap-sk.txt';
$myContent ="";

while($row = mysql_fetch_array($result)){

    $myContent .= "<url><loc>/".$row['id']."-".$row['company_name'].".html</loc>
                     <changefreq>monthly</changefreq></url>\n\r";

}
file_put_contents($myFile, $myContent); 

?>

尝试将此数据写入sitemap-sk.txt但没有运气

2 个答案:

答案 0 :(得分:0)

试试这个,我认为它有效:

$myFile = 'sitemap-sk.txt';
$fp=fopen($myFile,'a+')

while($row = mysql_fetch_assoc($result)){

    fwrite( $fp, "<url><loc>/".$row['id']."-".$row['company_name'].".html</loc><changefreq>monthly</changefreq></url>\n\r");

}
fclose($fp);

编辑: 试试这个并向我说结果:

    while($row = mysql_fetch_assoc($result)){

        $content[] = "<url><loc>/".$row['id']."-".$row['company_name'].".html</loc><changefreq>monthly</changefreq></url>\n\r";

    }

var_dump($content);

答案 1 :(得分:0)

在没有MySQL部分的情况下尝试代码在mi情况下完美无缺。 那就是:

$myFile = 'sitemap-sk.txt';
$myContent ="some test content";
file_put_contents($myFile, $myContent);

由于你提到的行为,我认为你可能有MySQL问题。 让我解释一下:你已经在每个有MySQL语句的行中放了 ...或者死(mysql_error()); 。如果遇到错误,这会导致脚本在没有输出的情况下突然终止。因此,该脚本实际上从不从数据库中获取数据。

您应该调试导致 die()触发的行。 我建议你删除 ...或死(mysql_error()); 调用并使用类似的东西(从我的头脑中):

if ($result = mysql_query($query)) {
    do stuff
}
else {
    echo "query error\n";
    echo mysql_error();
}

干杯,