0

MySQL クエリを CSV ファイルとしてエクスポートするスクリプトを作成しています。foreach()2 番目のステートメントで Invalid Argument が発生したことを除けば、これまでのところ問題ありません。使用してみましmysql_data_seekたが、問題は解決しませんでした。AFAK$rowは配列であるため、機能するはずです。

<?php

$conn = mysql_connect("12**strong text**7.0.0.1", "root", "root") or die(mysql_error());
mysql_select_db("database", $conn); 

if(isset($_POST['submit']))
{
    $filename = 'uploads/'.strtotime("now").'.csv';

    $fp = fopen($filename,"w");

    $sql = mysql_query("SELECT * FROM master") or die(mysql_error());
    $row = mysql_fetch_assoc($sql);

    $seperator = "";
    $comma = "";

    foreach($row as $name => $value)
    {
        $seperator .= $comma . '' .str_replace('','""',$name);
        $comma = ",";
    }

    $seperator .= "\n";

    fputs($fp,$seperator);


    mysql_data_seek($sql, 0);

    while( $row = mysql_fetch_assoc($sql) );
    {
        $seperator = "";
        $comma = "";
        foreach($row as $name => $value)
        {
            $seperator .= $comma . '' .str_replace('','""',$value);
            $comma = ",";
        }
        $seperator .= "\n";
        fputs($fp,$seperator);
    }
    fclose($fp);
}


?>
4

1 に答える 1

0

最初に foreach ループを追加した理由がわかりません。コードは次のようになります。

<?php

$conn = mysql_connect("12**strong text**7.0.0.1", "root", "root") or die(mysql_error());
mysql_select_db("database", $conn); 

if(isset($_POST['submit']))
{
    $filename = 'uploads/'.strtotime("now").'.csv';

    $fp = fopen($filename,"w");

    $sql = mysql_query("SELECT * FROM master") or die(mysql_error());
    while( $row = mysql_fetch_assoc($sql) );
    {
        $seperator = "";
        $comma = "";
        foreach($row as $name => $value)
        {
            $seperator .= $comma . '' .str_replace('','""',$value);
            $comma = ",";
        }
        $seperator .= "\n";
        fputs($fp,$seperator);
    }
    fclose($fp);
}


?>
于 2012-05-30T11:50:30.350 に答える