cron工作中的php和mysqli动作?

时间:2017-10-31 09:03:43

标签: php cron

我通常“手动”更新我的网站,进入一个名为“enterheretoupdate.php”的页面。这个页面每分钟刷新一次,以完成我需要的所有工作,所以当这个页面“打开”时,我的网站每分钟都会保持清爽。

“enterheretoupdate.php”有什么作用?它使与mysql相关的事情:创建表,从表中选择,向表添加行等。除此之外,它还对php和更新.json文件进行计算。

我想创建一个cron作业,因此我没有必要在我的计算机上访问“enterheretoupdate.php”以便每分钟更新一次我的网站。

我对此很新,但我学会了如何创建一个cron作业(我使用1and1)。我创建的示例cron作业,包括每分钟发送一封电子邮件,工作正常。

然而,我试图将“enterheretoupdate.php”保存为cron作业,但它不起作用。对cron工作可以做的事情有“限制”吗?我应该如何“翻译”我的php文件以使其作为一个cron工作?

真的很受欢迎。

这就是我的.php文件的样子:

<?php
$page = $_SERVER['PHP_SELF'];
$sec = "10";

//Change 1 to reload, 0 to not to reload;
$reload=1;
$gamecode=7;
$cmp="EL";
$year=2017;
if ($reload==1) echo"<head><meta http-equiv='refresh'content=".$sec.";URL='".$page."?gamecode=".$gamecode."&cmp=".$cmp."&year=".$year."'></head>";


include("../newcon.php");
include("../formulas.php");
include_once("funLightCreateTables.php");
include_once("funLightFirstFive.php");
include_once("funLightChanges.php");
include_once("funLightLiveJsons.php");




if ($cmp=="EC") {$l="U";}
if ($cmp=="EL") {$l="E";}

//Check
$q="SELECT * FROM LightLiveSchedule WHERE year=".$year." and cmp=".$cmp." and gamecode=".$gamecode."";
$res=mysqli_query($link,$q);
while ($r=mysqli_fetch_assoc($res)){
  $started=$r['started'];
}

if ($started==0){
    LightCreateTables($cmp,$year,$gamecode);
    $q="UPDATE LightLiveSchedule SET started=1 WHERE year=".$year." and cmp=".$cmp." and gamecode=".$gamecode."";
    mysqli_query($link,$q);
}


//Read
$pbp=file_get_contents("http://thesite.com/data.json?gamecode=".$gamecode."&seasoncode=".$l.$year."");
$pbp = json_decode($pbp,true);

//Insert
mysqli_query($link,"Truncate P_Live_Temp_".$cmp."_".$year."_".$gamecode."");

$lres=0;
$vres=0;
$n=0;
for ($i=0;$i<=4;$i++){
  $nplays[$i]=count($pbp[$qtitle[$i]]);
  $ii=0;
  for ($j=0;$j<=$nplays[$i];$j++){
    //change results
    if ($pbp[$qtitle[$i]][$ii]['PUNTOS_A']!=null) {
        $lres=$pbp[$qtitle[$i]][$ii]['PUNTOS_A'];
    }
    if ($pbp[$qtitle[$i]][$ii]['PUNTOS_B']!=null) {
        $vres=$pbp[$qtitle[$i]][$ii]['PUNTOS_B'];
    }
    //clean
    if (strpos($pbp[$qtitle[$i]][$ii]['CSDESCWEB'],"(")==0) {$play=$pbp[$qtitle[$i]][$ii]['CSDESCWEB'];}
    if (strpos($pbp[$qtitle[$i]][$ii]['CSDESCWEB'],"(")>0) {$play=substr($pbp[$qtitle[$i]][$ii]['CSDESCWEB'],0,strpos($pbp[$qtitle[$i]][$ii]['CSDESCWEB'],"(")-1);}
    //count
    $points=0;
    if ($play=="Three Pointer") {$points=3;}
    if ($play=="Two Pointer" or $play=="Lay Up" or $play=="Dunk") {$points=2;}
    if ($play=="Free Throw In") {$points=1;}
    //ntconsole=00:00 at End Game
    if ($play=="End Game") {$pbp[$qtitle[$i]][$ii]['NTCONSOLA']="00:00";}
    //insert
    $q="INSERT INTO P_Live_temp_".$cmp."_".$year."_".$gamecode." 
        (orden,shteam,shloc,shvis,quarter,minute,ntconsole,pcode,play,locres,visres,points) 
        VALUES
        (".$n.",'".$pbp[$qtitle[$i]][$ii]['NTEQUIPO']."','".$pbp['ca']."','".$pbp['cb']."',".($i+1).",
        ".$pbp[$qtitle[$i]][$ii]['MINUTO'].",'".$pbp[$qtitle[$i]][$ii]['NTCONSOLA']."',
        '".str_replace(" ","",substr($pbp[$qtitle[$i]][$ii]['NTJUGD'],1,10))."','".$play."',".$lres.",".$vres.",".$points.")";
    mysqli_query($link,$q);
    $ii++;
    $n++;
  }
}

你觉得它适合做一个cron工作吗?我该怎么办?非常感谢!

1 个答案:

答案 0 :(得分:0)

我有类似的问题,但以下对我有用。

请参阅更改默认mysql权限的链接 How to allow remote connection to mysql

现在更改sql连接文件中的db_server值 localhost127.0.0.1

在您的情况下,您需要编辑文件../newcon.php