php - 在php中将mysql行字符串数据导出到.text文件

标签 php mysql

我使用以下代码从 mysql 行获取回显结果,但我需要将这些输出保存到将生成和下载的 .text 文件(我不需要回显它)。我的 sql 数据是简单的字符串,如下所示-

Ar2rew3
df3432ss
sddfdsf
sdfsdfsd
sdfsdsd3
sererere

我只需要在每个字符串中换行,不需要其他任何东西。请告诉我现在应该在当前代码中添加哪些代码?我需要非常简单的解决方案。我希望将所有回显输出保存在 .text 文件中,该文件将被下载

echo '<form action="" method="post">
  Email:<input type="text" name="emailadrs"><br>
  Worklink:<input type="text" name="worklink"><br>
  <input type="submit" name="submit" value="Submit"></form>';

if (isset($_POST['submit'])) {
 $emailadrs = $_POST['emailadrs'];
 $worklink = $_POST['worklink'];

 $sub_stat=1;
 $qu = mysql_query("SELECT asin FROM working WHERE w_email='$emailadrs' AND w_asin_link='$worklink' AND submission_status='$sub_stat'");
 while ($row = mysql_fetch_array($qu)) {
   $asin = $row['asin']."<br>";
   echo $asin;
 }
}

最佳答案

好吧,我不会直接回答你的问题,因为老实说,从长远来看,我不相信这会对你有帮助,但我会给你一些指导......

1) 您的脚本容易受到 SQL 注入(inject)攻击 - 如果您继续这样做,那么任何人很可能可以通过精心设计的 SQL 注入(inject)攻击导出您数据库的任何部分。 - 阅读此处:http://shishirceh.blogspot.de/2011/06/sql-injection-beginners-tutorial.html如果你不知道什么是SQL注入(inject)。

2) 看看你的代码,我猜你对 PHP 还很陌生(我们都必须从正确的地方开始)。编写“普通”PHP 可能会很痛苦,幸运的是,PHP 社区中的人们已经创建了您可以使用的“框架”,从而消除了创建 PHP 应用程序的大量风险。我个人喜欢使用 Symfony,它非常容易上手,教程:http://symfony.com/doc/current/quick_tour/the_big_picture.html

3) 您使用 MySQL 的方式相当过时,并且与最新版本的 PHP 不兼容。看看这里有一个更好的选择:http://www.w3schools.com/php/php_mysql_prepared_statements.asp

4)您的编程方式(混合用户看到的部分和使网站正常工作的部分)将导致您遇到很多问题(安全性、与其他库的兼容性、健全性)框架将解决这为您提供了一个特定的位置来放置这些元素。然而,要真正利用 PHP 并成为一名“优秀”程序员,您应该首先学习面向对象编程 - 我建议您阅读这本书:http://www.ycit-he.org/files/Resources/PHP%20Objects,%20Patterns,%20and%20Practice.pdf

5) 如果你沿着 symfony 路线走,他们有一个用于写入文件的文件系统组件:http://symfony.com/doc/current/components/filesystem/introduction.html

6) 使用 Symfony,您可以轻松地强制用户在生成文件后下载该文件

// Generate response
$response = new Response();

// Set headers
$response->headers->set('Cache-Control', 'private');
$response->headers->set('Content-type', mime_content_type($filename));
$response->headers->set('Content-Disposition', 'attachment; filename="' . basename($filename) . '";');
$response->headers->set('Content-length', filesize($filename));

// Send headers before outputting anything
$response->sendHeaders();

$response->setContent(file_get_contents($filename));

希望这有帮助,

标记

关于php - 在php中将mysql行字符串数据导出到.text文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37548471/

相关文章:

php - 图片预加载 : how much is too much?

php - SQL Select where IN (array) 仅当找到数组中的第一项时才返回

mysql - 查找两个子查询之间的不同值

PHP:转义 RegEx 保留字符 - 有人知道这有什么问题吗?

php - 在提交错误的表单后将选择附加到选项

php - 字符在数据库中显示不正确

包含子查询的 MySQL 临时 View

php - 为 PHP 文件创建一个有效的符号链接(symbolic link)

MySQL 版本 : 5. 5.36 易受攻击?

php - 恢复编码错误的变音符号