データを Excel スプレッドシートにエクスポートする方法を探していました。私はたくさんの例を試しましたが、うまくいきませんでした。これは、「Query Failed!」を返す現在のコードです。ただし、「ORDER BY」を変更すると、スプレッドシートはデータを返しますが、その下でエラーをループします。これは、見つけて使用しているコードです。
$con = mysql_connect($hostname,$username,$password,$db_name) or die('Could not connect: ' . mysql_error());
function cleanData(&$str)
{
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
$filename = "website_data_" . date('Ymd') . ".xls";
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-type: application/vnd.ms-excel; charset=UTF-16LE");
$flag = false;
$result = mysql_query("SELECT * FROM test ORDER BY field") or die('Query failed!');
while(false !== ($row = mysql_fetch_assoc($result)))
{
if(!$flag)
{
echo implode("\t", array_keys($row)) . "\r\n";
$flag = true;
}
array_walk($row, 'cleanData');
echo implode("\t", array_values($row)) . "\r\n";
}
なぜこれが起こるのか誰か教えてもらえますか?(mysqli 関数を使用しても同じことが起こります)