我关注这个主题是因为我有同样的问题(无法使用命令 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/