2016-02-29 81 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); 
相關問題