我已经阅读了有关cron作业的其他问题,这些问题贯穿于php查询,但我所得到的错误似乎是特定于语法的,我希望有人能提供帮助。(这一切我都是新手,我自学,所以愚蠢的错误可能性很高)。
我正试着建立一个每天运行一次的cron作业。它的工作是查询生活在同一台服务器上的mysql数据库中的用户列表,确定其中任何一个在当天是否有生日,并响应cron作业给我的电子邮件。
以下是数据库创建代码:
CREATE TABLE IF NOT EXISTS test ( sid INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, birthday DATE );
insert into test values(NULL,'Jane Doe','2022-5-17');
insert into test values(NULL,'John Doe','2022-5-20');下面是我的php文件(birthdayChecker.php):
<?php
$conn = new mysqli('server', 'username', 'password', 'schema');
// Check connection
if ($conn->connect_error) {
die('Connection failed: ' . $conn->connect_error);
}
$result = $conn->query('select Name from test where MONTH(Birthday)=MONTH(CURRENT_DATE) and DAYOFMONTH(Birthday)=DAYOFMONTH(CURRENT_DATE)');
foreach ($result as $birthday)
{
echo 'Heads up: ' . $birthday['Name'] . ' has a birthday today!';
}我不完全确定如何共享cron设置,但现在每10分钟运行一次。我知道它在运行,因为我收到了电子邮件,但他们是这么说的:
fullpath/birthdayChecker.php: line 1: ?php: No such file or directory
fullpath/birthdayChecker.php: line 2: syntax error near unexpected token `('
fullpath/birthdayChecker.php: line 2: `$conn = new mysqli('server', 'username', 'password', 'schema');'特别是考虑到第1行的错误,我很确定我只是在做一些愚蠢的事情,但我看不见。感谢你的帮助!
发布于 2022-05-17 18:13:39
问题是,我需要告诉cron作业使用php ( shell知道,但cron显然不知道):
php -f fullpath/birthdayChecker.php还需要更多地修改实际的php代码才能让它合作:
$query = "select Name from test where MONTH(Birthday)=MONTH(CURRENT_DATE) and DAYOFMONTH(Birthday)=DAYOFMONTH(CURRENT_DATE)";
$result = $conn->query($query)->fetch_all(MYSQLI_ASSOC);
foreach($result as $row)
{
echo "Heads up: " . $row["Name"] . " has a birthday today!";
}https://stackoverflow.com/questions/72277996
复制相似问题