【问题标题】:Save SQL data to PHP file将 SQL 数据保存到 PHP 文件
【发布时间】:2016-04-13 06:29:40
【问题描述】:

我遇到了一个我无法解决的问题。我想做的事情是将所有输出 SQL 数据“保存”到文件中(应该以定时间隔例如 5 分钟更新)并在网站上打印文件。 这是我的示例脚本,它显示数据......但每次加载网络时都会建立连接。

<?php
            mysql_connect($dbserver, $dblogin, $dbpass);
            mysql_select_db($dbname);
            mysql_query("SET NAMES 'utf8'");

            $rektanrekt =  mysql_query("SELECT * FROM characters WHERE (accesslevel < '1') order by pkkills desc LIMIT 10"); 
            $i = 1;
            echo '<table id="top_table"><tr id="table_title"><td></td><td> </td><td>Nick</td><td></td><td>Kills</td></tr>';
        while($row = mysql_fetch_array($rektanrekt))
            {
            echo '<tr><td id="skaiciai">' . $i . '.</td><td></td><td id="nickas"><font>';
            echo $row["char_name"];
            echo '</font></td><td>&nbsp;&nbsp;</td><td id="kills"><font>';
            echo $row["pkkills"];
            echo '</font></td></tr>';
            $i++;
                }
echo '</table>';
?>

它完成了工作 -> http://prntscr.com/a3hpmx 但是是否可以“备份”这个文件,并在 SQL 离线时显示它......甚至更好 - 如果 SQL 开启,则每个时间间隔更新文件,如果 SQL 关闭,则只显示最新的?

【问题讨论】:

  • 当然,使用 cron 作业并将数据保存到文件中,而不是直接输出。然后访问者可以打开该文件而不是 php 文件。但是为什么 sql server 会离线,如果是,web-server 还会运行吗?
  • 这是在我的服务器被 DDoSed 并且 SQL 不可用的情况下。 Web 服务器在另一台 PC 上,因此很安全。

标签: php html css sql


【解决方案1】:

将输出数据保存到文件: 最简单的方法是使用类似于以下的代码将结果输出到文本文件中:

$timeStamp = time();
$pathName = "/gameLog/".$timeStamp.".txt";
$myFile = fopen($pathName, "w");

//+++++++++++++++++++++++++++++++++++
/*here you place your previous code, and inside the while 
loop you use the fwrite() function to include the information
you want to save. For example:

fwrite($myFile, ($info."\n"));

where $info is the data you want to include in the file, and 
"\n" is the line break.
*/
//+++++++++++++++++++++++++++++++++++

fclose($myFile);

注意:我使用$timeStamp = time(); 作为您保存所需信息的文件的名称,因为它会始终生成一个新值,因此您不会覆盖您的日志文件。它还可以帮助跟踪此日志的保存时间。你当然可以把它弄得更干净。

间隔执行: 正如 jeroen 所提到的,cron 工作可能是您这样做的最佳解决方案。如果您使用的是 CPanel (linux),当您访问您的虚拟主机帐户的 CPanel 主页时(我假设您有一个 godaddy 或其他提供商的帐户),应该有一个名为“Cron Jobs”或类似名称的选项。 Cron Job 的作用是它是一个“计划事件”,被告知在您指定的时间间隔内执行某个文件(您还指定文件的目录)。我在 youtube 上为您找到了一个示例,但是该视频有点过时了,尽管过程应该类似: https://www.youtube.com/watch?v=bmBjg1nD5yA


已编辑:我注意到您正在开发 L2Aria,如果您需要任何帮助,请告诉我! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    相关资源
    最近更新 更多