2016-02-29 74 views
0

我按照这个话题给出空,因为我有同样的问题(不能使用命令行shell,只需编辑文件主机) - >change a value after 24 hoursmysql_fetch_assoc()预计参数1是资源,在

首先运行SQL

CREATE TABLE `php_cron` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `last_ts` datetime DEFAULT NULL, 
    PRIMARY KEY (`id`) 
); 

INSERT INTO `php_cron` (`id`, `last_ts`) VALUES (1,'2012-08-10 00:00:00'); 

而且我的代码

$res1 = mysql_query("SELECT TIME_TO_SEC(TIMEDIFF(NOW(), last_ts)) AS tdif FROM php_cron WHERE id=1"); 
$dif = mysql_fetch_assoc($dif['tdif']); 

if ($dif >= 86400) { //24h 

    //following code will run once every 24h 

    //update user's page rank 
    $sql2 = "UPDATE logs_limitbandwidthtoday SET BandwidthToday = 0"; 
    mysql_query($sql2); 

    $sql23 = "UPDATE logs_limitlinktoday SET LimitLink = 0"; 
    mysql_query($sql23); 

    $sql24 = "UPDATE logs_limitvipbw SET BandwidthToday = 0"; 
    mysql_query($sql24); 

    $sql25 = "UPDATE logs_limitviplink SET LimitLink = 0"; 
    mysql_query($sql25); 

    $sql26 = "UPDATE account_vip SET ALLTime = ALLTime - 1 WHERE ALLTime > 0"; 
    mysql_query($sql26); 

    //update last execution time 
    $sql3 = "UPDATE php_cron SET last_ts = NOW() WHERE id=1"; 
    mysql_query($sql3); 

} 

错误 - > PHP的警告:mysql_fetch_assoc()预计参数1是资源,在空给出/ ....第2行

我不确定此代码是否仍然有效,请给我这个问题的答案。非常感谢 !

+1

$ dif = mysql_fetch_assoc($ res1); –

+0

没有$ res1 ['tdif'] - > ['tdif'] < - bro? –

+0

这可能会工作$ dif = mysql_fetch_assoc($ res1); $ dif1 = $ dif ['tdif']; if($ dif1> = 86400){ –

回答

0

确定这应该解决的问题

$dif = mysql_fetch_assoc($res1); 
$dif1 = $dif['tdif']; 
if ($dif1 >= 86400) { 

但由于mysql_ *是过时的,从PHP中删除,7.0更新的代码应该是这样的

$res1 = mysqli_query($con,"SELECT TIME_TO_SEC(TIMEDIFF(NOW(), last_ts)) AS tdif FROM php_cron WHERE id=1"); 
$dif = mysqli_fetch_assoc($res1); 
$dif1 = $dif['tdif']; 
if ($dif1 >= 86400) { 

    //following code will run once every 24h 

    //update user's page rank 
    $sql2 = "UPDATE logs_limitbandwidthtoday SET BandwidthToday = 0"; 
    mysqli_query($con,$sql2); 

    $sql23 = "UPDATE logs_limitlinktoday SET LimitLink = 0"; 
    mysqli_query($sql23); 

    $sql24 = "UPDATE logs_limitvipbw SET BandwidthToday = 0"; 
    mysqli_query($con,$sql24); 

    $sql25 = "UPDATE logs_limitviplink SET LimitLink = 0"; 
    mysqli_query($con,$sql25); 

    $sql26 = "UPDATE account_vip SET ALLTime = ALLTime - 1 WHERE ALLTime > 0"; 
    mysqli_query($con,$sql26); 

    //update last execution time 
    $sql3 = "UPDATE php_cron SET last_ts = NOW() WHERE id=1"; 
    mysqli_query($con,$sql3); 

} 

其中$ con是连接刺痛你做与数据库

$server='localhost';//your host name 
$user_name='root';//your mysql user name which is root by default 
$password='';//your mysql password which is blank by default 
$database='db';//your database name 

$con=mysqli_connect($server,$user_name,$password,$database); 
相关问题