php - mysql_fetch_assoc() 期望参数 1 为资源,在中给出的为 null

标签 php mysql

我关注这个主题是因为我有同样的问题(无法使用命令 shell,只需编辑文件主机)-> change a value after 24 hours

首次运行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 行/... 中给出 null

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

最佳答案

好的,这应该可以解决问题

$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);

关于php - mysql_fetch_assoc() 期望参数 1 为资源,在中给出的为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35705840/

相关文章:

php - mysql_fetch_assoc() 给我错误的值

php - 在两个不同的容器中运行 Nginx + PHP-FPM 时,该配置是否可以在不共享代码卷的情况下工作?

python - 数据库设计通讯录

php - 上传时转换视频

php - 从 mysql 获取数据并以周为单位进行分组并显示日期

java - 在保存到数据库之前如何获取生成器 ID?

mysql - 日期与 where 子句中的最大值的差异

mysql - 如何将 sum 的结果存储到可以在查询中使用的标识符中?

javascript - 将 HTML 参数传递给 php 页面

mysql - 如何编写查询以从数据库表中获取最近的记录