如何使用PHP创建文本文件,其中记录应来自MySQL?

3

请问有人能解释一下如何使用PHP创建一个文本文件,并将记录从MySQL中导入到该文件中吗?


尝试在Google上搜索“php mysql教程”。 - DisgruntledGoat
2
请查看SitePoint的服务器端编码PHP和MySQL教程或《实用PHP》中有关数据库的章节(http://www.tuxradar.com/practicalphp/9/0/0)。 - Gordon
抱歉,我想说的是如何使用PHP创建一个文本文件,其中记录应来自MySQL。 - Fero
2个回答

6

1)以写模式打开文件:

   $myFile = "testFile.txt";
   $fo = fopen($myFile, 'w') or die("can't open file");

2) 编写MySQL查询并获取其数据

   $data_query=mysql_query("SELECT name,age from table");
   while($data=mysql_fetch_array($data_query))
   $stringData.="Name: ".$data['name']." Age:".$data['age']."\n";

3) 将数据写入文件

   fwrite($fo, $stringData);

4) 关闭文件

   fclose($fo);

1
嗨,谢谢Nik。它运行得很好。但是如何合并多个记录?感谢您的答案。 - Fero
1
如果您有较大的数据集,可以直接将数据(使用多个fwrite)写入文件,而无需在php中进行连接。 - Eiko
这取决于你的数据,检查我对用户姓名和年龄数据所做的编辑,$stringData后面的点(.)将附加多个记录。此外,Eiko提出的观点是正确的,这只是你喜欢编写代码的方式。 - nik
能否创建表结构并存储数据? - Fero
然后您需要创建 .csv 文件而不是 txt 文件。 - nik

0
$fh   = fopen('games_set_88.php',"w");//php path

$extend_q  = mysql_query('SELECT * from mod_games_set');

$row_count = mysql_num_rows($extend_q);

$col_count = mysql_num_rows(mysql_query('describe mod_games_set'));

$data_str  = "<?php \n"."    $"."mod_extend_type = array(\n";

$startout  = 1;

while($row=mysql_fetch_assoc($extend_q)){
$startin = 1;
foreach($row as $key =>$value){
if( $startin<$col_count){
    if($startin == 1){
        $data_str .= "      '".$value."'=>array('".$key."'=>'".$value."',";
         }else{
            if($startin < $col_count-1) 
                $data_str .= "'".$key."'=>'".$value."',";
            else 
               $data_str .= "'".$key."'=>'".$value."')";
            }
        $startin++;
    }
}

if($startout < $row_count) $data_str .= ",";
    $data_str .= "\n";
    $startout++;
}
$data_str .=" );\n?>";
fwrite($fh,$data_str);
fclose($fh);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接