如果我在浏览器上设置脚本,一切正常。 来自crontab的代码
* * * * * c:\xampp\php\php.exe -q c:\xampp\htdocs\abc\sleep.php
Php脚本
sleep.php
<?php
require_once( "./sleep2.php");
$abc = new Registration();
$abc->register();
?>
sleep2.php
<?php
require_once("./config.php");
class Registration
{
private $spojenie;
function __construct()
{
$this->spojenie = new mysqli(db_host, db_user, db_pass, db_database);
}
public function register()
{
$insertPlayer = $this->spojenie->query("insert into skuska(nick, rank) values('shock',12,12)");
return true;
}
}
?>
还有一个问题。如果我打开php.exe(命令行窗口)并放置一些命令(-h),没有任何反应。可以吗?
答案 0 :(得分:0)
也许,你的php.exe没有使用适当的配置? 试试c:\ xampp \ php \ php.exe -c C:\ path \ to \ php.ini c:\ xampp \ htdocs \ abc \ sleep.php
提示:输入php.exe --ini以获取php解释器将查看的所有配置文件的列表。
我不知道-q标志是做什么的。
php --help | egrep -e '-q'
在我的Ubuntu上什么也没有产生。
就像 Sarwar Erfan 一样,不知道如何在Windows上运行cronjobs。也许您应该尝试使用Windows计划管理器?它支持标志。
答案 1 :(得分:0)
不确定它在Windows中是如何工作的,但在Linux中,cron从用户的homedir运行任务。因此,sleep.php的当前工作目录将不是存储此文件的目录。在这种情况下,您必须在脚本中使用绝对路径。我认为 FILE 或 DIR 会帮助您。有关详细信息,请查看http://php.net/manual/en/language.constants.predefined.php
答案 2 :(得分:0)
在包含任何内容之前,通过在脚本中调用chdir(dirname(__FILE__));
确保您位于正确的目录中。否则,require()
电话可能会失败。
答案 3 :(得分:0)
所以1,我将crontab更改为:
c:\xampp\php\php.exe -c C:\path\to\php.ini c:\xampp\htdocs\abc\sleep.php
2,php.exe --ini
返回配置文件(php.ini)路径:C:\Windows
已加载的配置文件:C:\xampp\php\php.ini
在(无)
中扫描其他.ini文件解析了其他.ini文件(无)
3,我将要求更改为include(dirname(__FILE__)."....."
4,有效:D:D:D:D
5,我正在考虑停止使用require。
感谢所有人。你真的帮了我