Php mysql_fetch_assoc()希望参数1是资源,在

Php mysql_fetch_assoc()希望参数1是资源,在,php,mysql,Php,Mysql,我关注这个主题是因为我有同样的问题(不能使用命令shell,只需编辑文件主机)-> 第一次运行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 0

我关注这个主题是因为我有同样的问题(不能使用命令shell,只需编辑文件主机)->

第一次运行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\u fetch\u assoc()希望参数1是资源,在/…中给出空值。。。。在线2


我不确定这个代码是否仍然有效,请回答我这个问题。非常感谢你

好,这应该可以解决问题

$dif = mysql_fetch_assoc($res1); 
$dif1 = $dif['tdif']; 
if ($dif1 >= 86400) {
但是由于mysql已经过时,并且已经从PHP7.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);

$dif=mysql\u fetch\u assoc($res1);如果没有$res1['tdif']->['tdif'],这可能会工作$dif=mysql\u fetch\u assoc($res1)$dif1=$dif['tdif'];如果($dif1>=86400){那么代码将像这样完美地工作,对吗@ArjanShrestha?->应该是这样。@TamVao