【问题标题】:task scheduler after 5 min5 分钟后的任务调度程序
【发布时间】:2013-09-04 11:34:50
【问题描述】:
<?php
    mysql_connect("localhost", "root", "");
    $db=mysql_select_db("test");
    $i=1;
    $r=" INSERT INTO test1 (score) VALUES ('$i') "  ;
    $t=mysql_query($r);
    if($t)
    {
    $d="select score from test1";
    $x=mysql_query($d);
$count=mysql_num_rows($x);
if($count>0)
{ 
while($row=mysql_fetch_array($x))
{

   $i=$row['score']+5;

    echo $i;
    echo "<br>";
    }}}

在此我只是将 $i 值插入到数据库中,即 1 ,然后通过使用 select 我捕获最后一个值并在其中添加 5 但它不起作用,我也无法使用会话,因为我正在工作在任务调度程序上,这意味着 5 分钟后我的脚本将运行并更新数据库,但在我的数据库中它只显示 1

【问题讨论】:

  • 但是你只加了五个,你在哪里更新你的数据?
  • PSA: mysql_* 函数是 deprecated in PHP 5.5。不建议编写新代码,因为它会阻止您将来升级。相反,请使用 MySQLiPDObe a better PHP Developer
  • 增量后不更新数据库。在循环中你应该添加:mysql_query("UPDATE test1 SET score=score+5"); - (顺便说一句,遵循@JasonMcCreary 的建议)
  • 你得到你的变量加 5 并退出,但你需要在你的数据库中进行更新以将 5 添加到数据库中。

标签: php scheduled-tasks


【解决方案1】:

选择后应该执行插入,然后您将能够插入更新的值。

目前您正在从数据库中获取值,将5 添加到它,然后离开。并且已经在脚本开头为 1 完成了插入

【讨论】:

  • 是的,没错,如果你更新变量,它并没有直接链接到数据库,根本没有链接。所以你需要在增量完成后更新数据或插入..只是为了补充^^
【解决方案2】:
<?php
mysql_connect("localhost", "root", "");
$db=mysql_select_db("test");
$i=1;


$d="select score from test1 order by id desc limit 1 ";
$x=mysql_query($d);
$count=mysql_num_rows($x);
if($count>0) { 
   $row=mysql_fetch_array($x))
   $i=$row['score']+5;
}

$r=" INSERT INTO test1 (score) VALUES ('$i') "  ;
$t=mysql_query($r);
?>

【讨论】:

  • @Jitender 警告:mysql_num_rows() 期望参数 1 是 $count=mysql_num_rows($x) 中的资源,我猜你的 $row=mysql_fetch_rows($x) 应该是像这样 while($row=mysql_fetch_array($x))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
  • 2021-08-09
  • 2018-08-08
  • 2021-08-28
  • 1970-01-01
  • 2016-10-02
  • 2014-12-29
相关资源
最近更新 更多