【问题标题】:Records are not coming in textfile from mysql记录不是来自mysql的文本文件
【发布时间】:2016-03-11 17:49:35
【问题描述】:

在这里,我想从 mysql 获取记录到我正在写入文本文件的文本文件。
但是文本文件正在创建为空白。
问题出在哪里?

我的代码:

$myFile = 'abctest.txt';
//echo $myFile;exit;
$fo = fopen('com_order/order_textfile/'.$myFile, 'w+') or die("can't open file");

$data_query=mysql_query("SELECT order_id from tbl_order") or die(mysql_error());

while($data=mysql_fetch_array($data_query))
{
    $stringData = fwrite($fo, "Order: ".$data['order_id']."\n");
}
fwrite($fo, $stringData);
fclose($fo);

header('Content-type: text/plain');
header('Content-disposition: attachment; filename='.$myFile);

【问题讨论】:

  • mysql_error() 的输出是什么?
  • 没有 @TimBiegeleisen:它什么也没显示。

标签: php mysql file fwrite


【解决方案1】:

readfile() 调用丢失:

readfile($myFile);

所以它应该是这样的:

header('Content-type: text/plain');
header('Content-disposition: attachment; filename='.$myFile);
readfile($myFile);

这里的 readfile() 是真正执行所有繁重工作的函数(读取文件,写入输出)。

更多主题:

readfile()

Force download

更新

你还有一个文件路径问题

请注意,您在 com_order/order_textfile/'.$myFile 中创建文件,但随后使用 $myFile 而不使用路径。引用文件时,您应该使用路径:

$myFile = 'abctest.txt';
$filePath = 'com_order/order_textfile/'.$myFile;
$fo = fopen($filePath, 'w+') or die("can't open file");

$data_query=mysql_query("SELECT order_id from tbl_order") or die(mysql_error());

while($data=mysql_fetch_array($data_query))
{
    $stringData = fwrite($fo, "Order: ".$data['order_id']."\n");
}
fwrite($fo, $stringData);
fclose($fo);

header('Content-type: text/plain');
header('Content-disposition: attachment; filename='.$filePath);
readfile($filePath);

【讨论】:

  • 谢谢,但文本文件中没有记录.. !!
  • 是的...现在我得到了我想要的...!!谢谢帕洛维奇。
【解决方案2】:

您执行查询的方式似乎存在问题,但请尝试下面的代码。

$link = mysqli_connect("localhost", "username", "password", "database name") or die("error unable to connect to database". mysqli_error($link)); 

$myFile = 'abctest.txt';
//echo $myFile;exit;
$fo = fopen('com_order/order_textfile/'.$myFile, 'w+') or die("can't open file");

$data_query=$link->query("SELECT order_id from tbl_order") or die(mysql_error());

while($data=mysqli_fetch_array($data_query))
{
    $stringData = fwrite($fo, "Order: ".$data['order_id']."\n");
    //echo("$stringData");
}
fwrite($fo, $stringData);
fclose($fo);

header('Content-type: text/plain');
header('Content-disposition: attachment; filename='.$myFile);

【讨论】:

  • 谢谢,但文本文件中没有记录.. !!
  • 确保以下内容正确 1) 文本文件的目录 2) 查询。
猜你喜欢
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
  • 2016-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-28
  • 1970-01-01
相关资源
最近更新 更多