我做错了什么? “ cronjob”

时间:2019-04-14 21:57:11

标签: php mysql cron

我有MySQL数据库,它包含一个带有名为“下载”列的表

我想每24小时将此列更新为0,但看来我的代码不起作用!

我在名为cron的服务器上有文件夹。 其中有两个文件,一个文件连接数据库,另一个文件包含php代码,以将列下载次数重置为0

这是我的连接代码:

   <?php
$link = mysqli_connect("localhost", "test", "root", "test1");

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
?>

我想在cronjob中使用它的php代码是这样的:

<?php
require_once('/home/cron/connect.php'); // connect to db
$mysqli = ("update users set downloads = 0");
$mysqli->close();
?>

我直接从浏览器触发了文件,但没有将列下载次数重置为零!我在做什么错了?

注意:当然,有.htaccess文件来保护对连接文件的直接访问

编辑:如果我运行连接代码,则连接没有错误,但是cronjob的第二个代码不起作用!

1 个答案:

答案 0 :(得分:3)

您根本不需要$mysqli->close();。您的连接对象称为$link。第二行应为:

$link->query("update users set downloads = 0");

您可能还应该检查它是否正确执行,以及是否对其不执行任何操作。
您在第二个文件中的完整代码可能如下所示(假设连接成功):

<?php
require_once('/home/cron/connect.php'); // connect to db
if( $link->query("update users set downloads = 0") ){
    // succesful
} else {
    // fail
}